Nginx Redirect HTTP naar HTTPS

Nginx Redirect Http Https



Nginx, uitgesproken als Engine x, is een gratis, open-source Linux-gebaseerd high-performance web en een reverse proxy-server die verantwoordelijk is voor het beheren en afhandelen van de belasting van het grootste websiteverkeer op internet. Nginx is een krachtige omleidingstool die eenvoudig op uw systeem kan worden geconfigureerd om het minder veilige of niet-versleutelde HTTP-webverkeer om te leiden naar een versleutelde en beveiligde HTTPS-webserver. Als u een systeembeheerder of een ontwikkelaar bent, gebruikt u de Nginx-server regelmatig.

In dit artikel zullen we werken aan het omleiden van het webverkeer van HTTP naar een veilige HTTPS in Nginx.







De antwoorden en verzoeken worden geretourneerd in de vorm van platte tekst in HTTP, terwijl de HTTPS SSL/TLS gebruikt om de communicatie tussen de client en het serversysteem te versleutelen. Daarom wordt HTTPS om vele redenen gebruikt in plaats van HTTP, die hieronder worden vermeld:



  • Alle gegevens tussen de client-server in beide richtingen zijn versleuteld. Iedereen heeft echter geen toegang tot gevoelige informatie als deze wordt onderschept.
  • Wanneer u HTTPS gebruikt, beschouwen Google Chrome en andere browsers uw websitedomein als veilig.
  • HTTPS-versie verbetert de prestaties van uw opgegeven website met behulp van het HTTP/2-protocol.
  • Als u uw websitedomein via HTTPS bedient, zal de website beter scoren op Google, omdat deze de voorkeur geeft aan alle HTTPS-beveiligde websites.

Het verdient de voorkeur om HTTP-verkeer om te leiden naar HTTPS in Nginx in een apart serverblok voor elke siteversie. Het wordt ook aanbevolen om het omleiden van verkeer te vermijden met de if-richting die ongebruikelijk gedrag van de server kan veroorzaken.



Leid al het verkeer om van HTTP naar HTTPS

Voeg de volgende wijzigingen toe aan het Nginx-configuratiebestand om al het verkeer van HTTP naar HTTPS-versie om te leiden:





server {
luisteren 80standaard_server;
server naam _;
opbrengst 301https: //$host$request_uri;
}

Hieronder hebben we elke bovengenoemde term uitgewerkt:

Luister 80 default_server - dit zal uw systeem signaleren dat al het HTTP-verkeer op poort 80 wordt opgevangen.
Servernaam _ - het is het domein dat overeenkomt met elke hostnaam.



Retourneer 301 https://$host$request_uri - dit vertelt uw zoekmachines dat het permanent wordt omgeleid. Het specificeert dat de variabele $host de domeinnamen bevat.

Nadat u de configuratie-instellingen hebt gewijzigd, moet u de Nginx-services opnieuw op uw systeem laden. Dus herlaad je Nginx-services met behulp van de volgende opdracht:

$sudosystemctl herlaad nginx

Verwijs HTTP naar HTTPS-versie voor gespecificeerd domein in Nginx

Nadat u het SSL-certificaat op uw domein hebt geïnstalleerd, heeft u twee opties voor serverblokkering voor dit domein. Eén blok is voor de HTTP-versie die luistert op poort 80, en de tweede versie is HTTPS op poort 443. Als u echter een enkel websitedomein wilt omleiden van HTTP naar HTTPS, moet u de Nginx-configuratie openen. U kunt dit configuratiebestand vinden in de map /etc/nginx/sites-available. In ieder geval, als je dit bestand niet hebt gevonden, kun je ernaar zoeken met /etc/nginx/nginx.conf, /usr/local/nginx/conf of /usr/local/etc/nginx, en dan de volgende wijzigingen in dit bestand:

server {
luisteren 80;
server naam domeinnaam.com www.domeinnaam.com;
opbrengst 301https://domeinnaam.com$request_uri;
}

Laten we de bovenstaande code regel voor regel begrijpen.
Luister 80 - met behulp van poort 80 luistert de server naar alle inkomende verbindingen die zijn gespecificeerd in het domein.

Servernaam domeinnaam.com www.domeinnaam.com – het specificeert de domeinnamen. Vervang deze dus door de domeinnaam van uw website die u wilt omleiden.

Retourneer 301 https://domain-name.com$request_uri - het verplaatst het verkeer naar de HTTPS-versie van de site. De variabele $request_uri wordt gebruikt voor de volledige originele aanvraag-URI waarin ook argumenten zijn opgenomen.

Met de volgende methode kunt u verkeer naar de HTTPS www-versie omleiden naar de niet-www-versie van de site. Het wordt aanbevolen om een ​​omleiding in een apart serverblok te maken voor zowel de niet-www- als de www-versie.

Laten we het uitleggen met een voorbeeld. Als u de www HTTPS-verzoeken wilt omleiden naar de niet-www-versie, volgt u de volgende configuratie:

server {
luisteren 80;
server naam domeinnaam.com www.domeinnaam.com;
opbrengst 301https://domeinnaam.com$request_uri;
}
server {
luisteren 443 ssl http2;
server naam www.domeinnaam.com;
# . . . andere code:
opbrengst 301https://domeinnaam.com$request_uri;
}
server {
luisteren 443 ssl http2;
server naam domeinnaam.com;

# . . . andere code:
}

Vervang de domeinnaam door uw domein, zoals www.linuxhint.com.

Conclusie

We hebben besproken hoe verkeer van de HTTP-versie naar de HTTPS op de Nginx-server kan worden omgeleid. Door de instelling van het Nginx-configuratiebestand te wijzigen, kunt u het verkeer eenvoudig omleiden naar HTTPS voor een bepaald domein of alles omleiden. Deze methode, die we in dit artikel hebben genoemd, kan u helpen uw website veiliger te maken door wijzigingen aan te brengen in de gebruikerservaring.