Nginx leitet HTTP zu HTTPS um

Nginx Redirect Http Https



Nginx, ausgesprochen als Engine x, ist ein kostenloses Open-Source-Linux-basiertes Hochleistungs-Web und ein Reverse-Proxy-Server, der für die Verwaltung und Handhabung des größten Website-Traffics im Internet verantwortlich ist. Nginx ist ein leistungsstarkes Umleitungstool, das einfach auf Ihrem System konfiguriert werden kann, um den weniger sicheren oder unverschlüsselten HTTP-Webverkehr auf einen verschlüsselten und gesicherten HTTPS-Webserver umzuleiten. Wenn Sie Systemadministrator oder Entwickler sind, verwenden Sie den Nginx-Server regelmäßig.

In diesem Artikel werden wir daran arbeiten, den Webverkehr von HTTP auf ein sicheres HTTPS in Nginx umzuleiten.







Die Antworten und Anfragen werden in Form von Klartext in HTTP zurückgegeben, während HTTPS SSL/TLS verwendet, um die Kommunikation zwischen Client- und Serversystem zu verschlüsseln. Daher wird aus vielen Gründen HTTPS über HTTP verwendet, die im Folgenden aufgeführt sind:



  • Alle Daten zwischen Client-Server in beide Richtungen sind verschlüsselt. Allerdings kann niemand auf sensible Informationen zugreifen, wenn diese abgefangen werden.
  • Wenn Sie HTTPS verwenden, betrachten Google Chrome und andere Browser Ihre Website-Domain als sicher.
  • Die HTTPS-Version verbessert die Leistung Ihrer angegebenen Website mithilfe des HTTP/2-Protokolls.
  • Wenn Sie Ihre Website-Domain über HTTPS bereitstellen, wird die Website bei Google besser ranken, da sie alle HTTPS-gesicherten Websites bevorzugt.

Es wird bevorzugt, den HTTP-Datenverkehr in Nginx in einem separaten Serverblock für jede Site-Version auf HTTPS umzuleiten. Es wird auch empfohlen, die Umleitung des Datenverkehrs mithilfe der if-Richtung zu vermeiden, was zu einem ungewöhnlichen Verhalten des Servers führen kann.



Leiten Sie den gesamten Datenverkehr von HTTP auf HTTPS um

Fügen Sie der Nginx-Konfigurationsdatei die folgenden Änderungen hinzu, um den gesamten Datenverkehr von der HTTP- auf die HTTPS-Version umzuleiten:





Server {
hören 80default_server;
Servername _;
Rückkehr 301https: //$host$request_uri;
}

Im Folgenden haben wir jeden der oben genannten Begriffe ausgearbeitet:

Listen 80 default_server – dies signalisiert Ihrem System, dass der gesamte HTTP-Verkehr auf Port 80 erfasst wird.
Server_name _ – Dies ist die Domain, die mit jedem Hostnamen übereinstimmt.



Geben Sie 301 https://$host$request_uri zurück – dies teilt Ihren Suchmaschinen mit, dass sie dauerhaft umgeleitet werden. Es gibt an, dass die Variable $host die Domänennamen enthält.

Nachdem Sie die Konfigurationseinstellungen geändert haben, müssen Sie die Nginx-Dienste auf Ihrem System neu laden. Laden Sie also Ihre Nginx-Dienste mit dem folgenden Befehl neu:

$sudosystemctl neu laden nginx

Leiten Sie HTTP zu HTTPS-Version für angegebene Domäne in Nginx um

Nachdem Sie das SSL-Zertifikat auf Ihrer Domain installiert haben, haben Sie zwei Optionen für Serverblöcke für diese Domain. Ein Block ist für die HTTP-Version, die auf Port 80 lauscht, und die zweite Version ist HTTPS auf Port 443. Um jedoch eine einzelne Website-Domain von HTTP auf HTTPS umzuleiten, müssen Sie die Nginx-Konfiguration öffnen. Sie finden diese Konfigurationsdatei im Verzeichnis /etc/nginx/sites-available. Falls Sie diese Datei nicht gefunden haben, können Sie auf jeden Fall mit /etc/nginx/nginx.conf, /usr/local/nginx/conf oder /usr/local/etc/nginx danach suchen und dann die folgende Änderungen in dieser Datei:

Server {
hören 80;
Servername domain-name.com www.domain-name.com;
Rückkehr 301https://domain-name.com$request_uri;
}

Lassen Sie uns den obigen Code Zeile für Zeile verstehen.
Listen 80 – unter Verwendung von Port 80 überwacht der Server alle eingehenden Verbindungen der angegebenen Domäne.

Servername Domänenname.com www.domänenname.com – gibt die Domänennamen an. Ersetzen Sie ihn also durch den Domainnamen Ihrer Website, den Sie umleiten möchten.

Geben Sie 301 https://domain-name.com$request_uri zurück – es verschiebt den Datenverkehr zur HTTPS-Version der Site. Die Variable $request_uri wird für den vollständigen ursprünglichen Anforderungs-URI verwendet, in dem auch Argumente enthalten sind.

Mit der folgenden Methode können Sie den Datenverkehr von der HTTPS-www-Version auf die Nicht-www-Version der Site umleiten. Es wird empfohlen, sowohl für Nicht-www- als auch für www-Versionen eine Umleitung in einem separaten Serverblock zu erstellen.

Erklären wir es mit einem Beispiel. Wenn Sie die HTTPS-Anfragen von www auf die Nicht-www-Version umleiten möchten, gehen Sie wie folgt vor:

Server {
hören 80;
Servername domain-name.com www.domain-name.com;
Rückkehr 301https://domain-name.com$request_uri;
}
Server {
hören 443 SSL http2;
Servername www.domain-name.com;
# . . . anderer Code
Rückkehr 301https://domain-name.com$request_uri;
}
Server {
hören 443 SSL http2;
Servername Domainname.com;

# . . . anderer Code
}

Ersetzen Sie den Domainnamen durch Ihre Domain, z. B. www.linuxhint.com.

Abschluss

Wir haben besprochen, wie der Datenverkehr von der HTTP-Version auf HTTPS auf dem Nginx-Server umgeleitet wird. Indem Sie die Einstellung der Nginx-Konfigurationsdatei ändern, können Sie den Datenverkehr entweder für eine bestimmte Domäne oder für alle auf HTTPS umleiten. Diese Methode, die wir in diesem Artikel erwähnt haben, kann Ihnen helfen, Ihre Website sicherer zu machen, indem Sie Änderungen an der Benutzererfahrung vornehmen.