GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So leiten Sie HTTP zu HTTPS in Nginx um

Einführung

Nginx (ausgesprochen „Engine-X“) ist ein Linux-basierter Webserver und eine Proxy-Anwendung. Nginx ist ein leistungsstarkes Tool zum Umleiten und Verwalten von Webverkehr. Es kann einfach so konfiguriert werden, dass unverschlüsselter HTTP-Webverkehr auf einen verschlüsselten HTTPS-Server umgeleitet wird.

Diese Anleitung zeigt Ihnen, wie Sie mit Nginx HTTP auf HTTPS umleiten.

Voraussetzungen

  • Ein Linux-Server, auf dem Nginx ausgeführt wird
  • Ein Benutzerkonto mit sudo Privilegien
  • Remote-Login bei einem Webserver (optional, nur erforderlich, wenn Sie nicht direkt auf Ihrem Webserver arbeiten)
  • Zugriff auf ein Terminal/eine Befehlszeile (Strg-Alt-T oder Strg-Alt-F2)

HTTP-zu-HTTPS-Umleitung

Um eine HTTP-zu-HTTPS-Weiterleitung zu erzwingen, müssen Sie die Nginx-Konfigurationsdatei bearbeiten.

In den meisten Fällen finden Sie die Datei unter /etc/nginx/sites-available Verzeichnis. Falls nicht, suchen Sie hier danach:/etc/nginx/nginx.conf, /usr/local/nginx/conf , oder /usr/local/etc/nginx .

Sobald Sie die Nginx-Konfigurationsdatei gefunden haben, öffnen Sie sie in einem Texteditor mit dem Befehl:

sudo nano /etc/nginx/sites-available/server.conf

Ersetzen Sie den Speicherort durch den tatsächlichen Speicherort und Namen Ihrer Konfigurationsdatei.

Sobald die Konfigurationsdatei zum Bearbeiten geöffnet ist, fügen Sie einen der folgenden Codeblöcke ein. Wenn Sie mit der Bearbeitung fertig sind, speichern Sie die Datei und beenden Sie sie. Starten Sie dann den Nginx-Dienst mit dem folgenden Befehl neu:

sudo service nginx restart

Nginx leitet den gesamten HTTP-Datenverkehr auf HTTPS um

Öffnen Sie die Nginx-Konfigurationsdatei zum Bearbeiten und fügen Sie dann den folgenden Code ein:

server {

    listen 80 default_server;


    server_name _;


    return 301 https://$host$request_uri;

}

Hier ist eine Aufschlüsselung der Befehle:

  • Listen 80 :Dies weist das System an, den gesamten HTTP-Verkehr auf Port 80 abzufangen
  • Server_name _; :Dies passt zu jedem Hostnamen
  • Return 301 :Dies teilt dem Browser (und den Suchmaschinen) mit, dass es sich um eine permanente Weiterleitung handelt
  • https://$host$request_uri :Dies ist ein kurzer Code, um die HTTPS-Version dessen anzugeben, was der Benutzer eingegeben hat

Nach der Bearbeitung wird der gesamte Datenverkehr für den HTTP-Standardserver auf HTTPS umgeleitet.

Eine bestimmte Website weiterleiten

Möglicherweise haben Sie mehrere Server, aber nur einige davon erfordern möglicherweise HTTPS. Geben Sie den Servernamen im Serverblock an, um den ausgewählten Datenverkehr umzuleiten:

server {

    listen 80 default_server;


    server_name my_app.com;


    return 301 https://my_app.com$request_uri;

}

Ersetzen Sie den Namen my_app.com mit dem Namen des Servers, den Sie umleiten möchten. Möglicherweise möchten Sie auch zusätzliche Sites hinzufügen, indem Sie einen weiteren Serverblock hinzufügen. Kopieren Sie einfach den Code und tauschen Sie den Namen des Servers aus.

Nur SSL-Verbindungen akzeptieren

Fügen Sie diesen Code hinzu, um sicherzustellen, dass der Server nur SSL-Verbindungen auf Port 443 akzeptiert:

server {

    listen 443 ssl default_server;

    server_name my_app.com;

}


server {

    listen 443 ssl;

    server_name my_website.com;

}

Dieser Codeblock legt zwei Websites fest, my_app.com und meine_website.com , um nur SSL-Verbindungen zu akzeptieren. Sie können zusätzliche Sites hinzufügen, indem Sie zusätzliche Serverblöcke verwenden.

Nginx-Seitenumleitungen

Sie können den Rewrite-Code verwenden, um schnell eine 301- (permanente) oder 302- (temporäre) Weiterleitung zu verwalten:

Location /index.html {

       rewrite ^/oldURL$ https://www.your_domain.com/newURL redirect;

}

Meistens ist der Speicherort index.html , aber Sie können einen beliebigen Pfad/Muster angeben.

Beachten Sie, dass die rewrite Der Befehl sollte nur mit 301- oder 302-Weiterleitungen verwendet werden.

So leiten Sie eine Domain mit Nginx um

Dies ist nützlich, wenn Sie von einer Vanity-Erweiterung (wie .biz oder .net) zu einer standardmäßigen .com-Adresse gewechselt haben. Es kann auch verwendet werden, um von einem alten Domainnamen auf einen neuen Domainnamen umzuleiten.

server {

    listen 80;

    listen 443 ssl;

    server_name www.old_company.com;

    return 301 $scheme://www.new_company.com$request_uri;

}

In den meisten Fällen ist return Befehl wird dem Rewrite-Befehl vorgezogen.

Umleitung von www-Website auf nicht-www-Website

Dieser Vorgang ähnelt einer standardmäßigen Seitenumleitung:

server {

    server_name www.new_company.com;

    return 301 $scheme://new_company.com$request_uri;

}

Gründe für die Weiterleitung des Datenverkehrs

Es gibt mehrere Gründe, HTTP-Datenverkehr auf HTTPS umzuleiten. Möglicherweise müssen Sie:

  • Erzwingen Sie eine sicherere, verschlüsselte Verbindung.
  • Behalten Sie eine Seite mit gutem SEO-Ranking bei, aber leiten Sie den Traffic auf eine neue Seite.
  • Benachrichtigen und vorübergehend Datenverkehr an eine Seite senden, die gewartet wird.
  • Senden Sie Traffic permanent von einer Website zur anderen, z. B. nach einer Unternehmensfusion.

Linux
  1. So verwenden Sie Nginx zum Umleiten

  2. So installieren Sie den HTTP-Git-Server mit Nginx unter Ubuntu 16.04

  3. So installieren Sie den HTTP-Git-Server mit Nginx unter Ubuntu 20.04

  4. So installieren Sie den HTTP-Git-Server mit Nginx unter Debian 11

  5. Umleitung von HTTP zu HTTPS in NginX

So installieren Sie Nginx in Debian 7

So installieren Sie Nginx auf Fedora 22

So installieren Sie NGINX unter Ubuntu 20.04

So installieren Sie Nginx unter CentOS 7

So konfigurieren Sie NGINX auf einem CentOS 7-Server

So richten Sie Nginx als Loadbalancer für Apache oder Tomcat für HTTP/HTTPS ein