Android

Stuur http door naar https in nginx

How to Configure NGINX HTTPS with a SSL Certificate!

How to Configure NGINX HTTPS with a SSL Certificate!

Inhoudsopgave:

Anonim

In deze gids zullen we uitleggen hoe het HTTP-verkeer omgeleid kan worden naar HTTPS in Nginx.

Nginx uitgesproken als "engine x" is een gratis, open-source, high-performance HTTP en reverse proxy-server die verantwoordelijk is voor het afhandelen van enkele van de grootste sites op internet.

In tegenstelling tot HTTP, waar verzoeken en antwoorden in platte tekst worden verzonden en geretourneerd, gebruikt HTTPS TLS / SSL om de communicatie tussen de client en de server te coderen.

Het gebruik van HTTPS via HTTP heeft veel voordelen, zoals:

  • Alle gegevens worden in beide richtingen gecodeerd. Dientengevolge kan gevoelige informatie niet worden gelezen als deze wordt onderschept. Google Chrome en alle andere populaire browsers zullen uw website als veilig markeren. Met HTC kunt u het HTTP / 2-protocol gebruiken, wat de prestaties van de site aanzienlijk verbetert. Google geeft de voorkeur aan HTTPS-websites. Uw site scoort beter als deze wordt aangeboden via

De voorkeursmethode om HTTP om te leiden naar HTTPS in Nginx is het configureren van een afzonderlijk serverblok voor elke versie van de site. U moet het verkeer niet omleiden met de if-richtlijn, omdat dit onvoorspelbaar gedrag van de server kan veroorzaken.

Verwijs HTTP naar HTTPS per site

Om een ​​enkele website om te leiden naar HTTPS, opent u het domeinconfiguratiebestand en brengt u de volgende wijzigingen aan:

server { listen 80; listen:80; server_name linuxize.com www.linuxize.com; return 301 https://linuxize.com$request_uri; }

Laten we de code regel voor regel opsplitsen:

  • listen 80 - Het serverblok luistert naar inkomende verbindingen op poort 80 voor het opgegeven domein. server_name linuxize.com www.linuxize.com - Specificeert de domeinnamen van het server_name linuxize.com www.linuxize.com . Zorg ervoor dat u deze vervangt door uw domeinnaam. return 301 - return 301 het verkeer door naar de HTTPS-versie van de site. De variabele $request_uri is de volledige oorspronkelijke aanvraag-URI inclusief de argumenten.

Meestal wilt u ook de HTTPS www-versie van de site omleiden naar de niet-www of vice versa. De aanbevolen manier om de omleiding te doen, is om een ​​afzonderlijk serverblok te maken voor zowel www- als niet-www-versies.

Als u bijvoorbeeld de HTTPS www-aanvragen wilt omleiden naar niet-www, gebruikt u de volgende configuratie:

server { listen 80; listen:80; server_name linuxize.com www.linuxize.com; return 301 https://linuxize.com$request_uri; } server { listen 443 ssl http2; server_name www.linuxize.com; #… other code return 301 https://linuxize.com$request_uri; } server { listen 443 ssl http2; server_name linuxize.com; #… other code }

Alle sites omleiden naar HTTPS

Als alle websites die op de server worden gehost, zijn geconfigureerd om HTTPS te gebruiken en u geen afzonderlijk HTTP-serverblok voor elke site wilt maken, kunt u een enkel alles-HTTP-serverblok maken. Dit blok zal alle HTTP-verzoeken omleiden naar de juiste

Om een ​​enkel catch-all HTTP-blok te maken dat de bezoekers omleidt naar de HTTPS-versie van de site, opent u het Nginx-configuratiebestand en brengt u de volgende wijzigingen aan:

server { listen 80 default_server; listen:80 default_server; server_name _; return 301 https://$host$request_uri; }

Laten we de code regel voor regel analyseren:

  • listen 80 default_server - Stelt dit serverblok in als het standaardblok (catch-all) voor alle niet-overeenkomende domeinen. server_name _ - _ is een ongeldige domeinnaam die nooit overeenkomt met een echte domeinnaam. return 301 - return 301 het verkeer om naar het overeenkomstige return 301 met statuscode 301 (permanent verplaatst). De variabele $host bevat de domeinnaam van het verzoek.

Als de bezoeker bijvoorbeeld http://example.com/page2 in de browser opent, zal Nginx het verzoek omleiden naar https://example.com/page2 .

Maak indien mogelijk de voorkeur aan een omleiding per domein in plaats van een globale HTTP naar

Conclusie

Nadat u een SSL-certificaat op uw website hebt geïnstalleerd, moet u het HTTP-verkeer omleiden naar

In Nginx is de voorkeursmanier om HTTP om te leiden naar HTTPS door afzonderlijke serverblokken te maken en 301-omleiding uit te voeren.

nginx