Nginx Omdiriger HTTP til HTTPS

Nginx Redirect Http Https



Nginx, udtales som Engine x, er et gratis, open-source Linux-baseret højtydende web og en omvendt proxyserver, der er ansvarlig for at styre og håndtere belastningen af ​​den største webstedstrafik på internettet. Nginx er et kraftfuldt omdirigeringsværktøj, der let kan konfigureres på dit system til at omdirigere den mindre sikre eller ukrypterede HTTP -webtrafik til en krypteret og sikret HTTPS -webserver. Hvis du er systemadministrator eller udvikler, bruger du Nginx -serveren regelmæssigt.

I denne artikel vil vi arbejde med, hvordan du omdirigerer webtrafikken fra HTTP til en sikker HTTPS i Nginx.







Svarene og anmodningerne returneres i form af ren tekst i HTTP, mens HTTPS bruger SSL/TLS til at kryptere kommunikationen mellem klienten og serversystemet. Af mange årsager bruges HTTPS derfor over HTTP, som er angivet nedenfor:



  • Alle data mellem klient-serveren i begge retninger er krypteret. Imidlertid kan ingen få adgang til følsomme oplysninger, hvis de opfanges.
  • Når du bruger HTTPS, vil Google Chrome og andre browsere betragte dit webstedsdomæne som sikkert.
  • HTTPS -version forbedrer din angivne webstedsydelse ved hjælp af HTTP/2 -protokollen.
  • Hvis du betjener dit webstedsdomæne via HTTPS, rangerer webstedet bedre på Google, da det favoriserer alle HTTPS -sikrede websteder.

Det foretrækkes at omdirigere trafik -HTTP til HTTPS i Nginx i en separat serverblok for hver webstedsversion. Det anbefales også at undgå at omdirigere trafik ved hjælp af if -retning, der kan forårsage usædvanlig opførsel af serveren.



Omdiriger al trafik fra HTTP til HTTPS

Tilføj følgende ændringer i Nginx -konfigurationsfilen for at omdirigere al trafik fra HTTP til HTTPS -version:





server {
Lyt 80default_server;
server navn _;
Vend tilbage 301https: //$ vært$ request_uri;
}

Nedenfor har vi uddybet hvert ovennævnte udtryk:

Lyt til 80 default_server - dette vil signalere dit system, der fanger al HTTP -trafik på Port 80.
Servernavn _ - det er domænet, der matcher ethvert værtsnavn.



Returner 301 https: // $ host $ request_uri - dette fortæller dine søgemaskiner, der omdirigerer det permanent. Den angiver, at variablen $ host indeholder domænenavne.

Når du har ændret konfigurationsindstillingerne, skal du genindlæse Nginx -tjenesterne på dit system. Så genindlæs dine Nginx -tjenester ved at bruge følgende kommando:

$sudosystemctl genindlæser nginx

Omdiriger HTTP til HTTPS -version for specificeret domæne i Nginx

Efter installation af SSL -certifikatet på dit domæne har du to serverblokke -muligheder for dette domæne. En blok er til, at HTTP -versionen lytter på port 80, og den anden version er HTTPS på port 443. For at omdirigere et enkelt webstedsdomæne fra HTTP til HTTPS skal du åbne Nginx -konfigurationen. Du kan finde denne konfigurationsfil i biblioteket/etc/nginx/sites-available. Under alle omstændigheder, hvis du ikke fandt denne fil, kan du søge efter den med /etc/nginx/nginx.conf,/usr/local/nginx/conf eller/usr/local/etc/nginx og derefter udføre følgende ændringer i denne fil:

server {
Lyt 80;
server navn domænenavn.com www.domæne-navn.com;
Vend tilbage 301https://domain-name.com$ request_uri;
}

Lad os forstå ovenstående kode linje for linje.
Lyt 80 - ved hjælp af port 80 vil serveren lytte efter alle indgående forbindelser, der er specificeret domæne.

Servernavn domænenavn.com www.domæne-navn.com-det angiver domænenavne. Så udskift det med dit websteds domænenavn, som du vil omdirigere.

Returner 301 https: //domain-name.com$request_uri-det flytter trafikken til HTTPS-versionen af ​​webstedet. Variablen $ request_uri bruges til den fulde originale anmodnings -URI, hvori argumenter også er inkluderet.

Ved hjælp af følgende metode kan du omdirigere trafik til HTTPS www-versionen til ikke-www-versionen af ​​webstedet. Det anbefales at oprette en omdirigering i en separat serverblok til både ikke-www- og www-versioner.

Lad os forklare med et eksempel. Hvis du vil omdirigere www HTTPS-anmodningerne til den ikke-www-version, vil du følge følgende konfiguration:

server {
Lyt 80;
server navn domænenavn.com www.domæne-navn.com;
Vend tilbage 301https://domain-name.com$ request_uri;
}
server {
Lyt 443 ssl http2;
server navn www.domain-name.com;
#. . . anden kode
Vend tilbage 301https://domain-name.com$ request_uri;
}
server {
Lyt 443 ssl http2;
server navn domænenavn.com;

#. . . anden kode
}

Erstat domænenavnet med dit domæne, f.eks. Www.linuxhint.com.

Konklusion

Vi har diskuteret, hvordan man omdirigerer trafik fra HTTP -version til HTTPS på Nginx -serveren. Ved at ændre Nginx -konfigurationsfilindstillingen kan du nemt omdirigere trafik til HTTPS enten for et bestemt domæne eller omdirigere alle. Denne metode, som vi har nævnt i denne artikel, kan hjælpe dig med at gøre dit websted mere sikkert ved at foretage ændringer i brugeroplevelsen.