Nginx Omdiriger HTTP til HTTPS

Nginx Redirect Http Https



Nginx, uttales som Engine x, er en gratis, åpen kildekode Linux-basert høyytelsesnett og en omvendt proxy-server som er ansvarlig for å administrere og håndtere belastningen på den største nettstedstrafikken på internett. Nginx er et kraftig omdirigeringsverktøy som enkelt kan konfigureres på systemet ditt for å omdirigere den mindre sikre eller ukrypterte HTTP -webtrafikken til en kryptert og sikret HTTPS -webserver. Hvis du er systemadministrator eller utvikler, bruker du Nginx -serveren jevnlig.

I denne artikkelen vil vi jobbe med hvordan du omdirigerer webtrafikken fra HTTP til en sikker HTTPS i Nginx.







Svarene og forespørslene returneres i form av ren tekst i HTTP, mens HTTPS bruker SSL/TLS for å kryptere kommunikasjonen mellom klienten og serversystemet. På grunn av mange årsaker brukes derfor HTTPS over HTTP, som er listet opp nedenfor:



  • Alle dataene mellom klient-serveren i begge retninger er kryptert. Imidlertid kan ingen få tilgang til sensitiv informasjon hvis de blir fanget opp.
  • Når du bruker HTTPS, vil Google Chrome og andre nettlesere betrakte domenet ditt som trygt.
  • HTTPS -versjonen forbedrer den angitte nettstedets ytelse ved hjelp av HTTP/2 -protokollen.
  • Hvis du betjener domenet ditt via HTTPS, vil nettstedet rangere bedre på Google, ettersom det favoriserer alle HTTPS -sikrede nettsteder.

Det foretrekkes å omdirigere trafikk HTTP til HTTPS i Nginx i en egen serverblokk for hver nettstedversjon. Det anbefales også å unngå å omdirigere trafikk ved å bruke if -retning som kan forårsake uvanlig oppførsel fra serveren.



Omdiriger all trafikk fra HTTP til HTTPS

Legg til følgende endringer i Nginx -konfigurasjonsfilen for å omdirigere all trafikk fra HTTP til HTTPS -versjon:





server {
lytte 80default_server;
Server navn _;
komme tilbake 301https: //$ vert$ request_uri;
}

Nedenfor har vi utdypet hvert ovennevnte begrep:

Lytt til 80 default_server - dette vil signalisere systemet ditt som fanger all HTTP -trafikk på Port 80.
Servernavn _ - det er domenet som vil matche med ethvert vertsnavn.



Returner 301 https: // $ host $ request_uri - dette forteller søkemotorene som omdirigerer den permanent. Den angir at variabelen $ host inneholder domenenavnene.

Når du har endret konfigurasjonsinnstillingene, må du laste Nginx -tjenestene på nytt på systemet ditt. Så last inn Nginx -tjenestene på nytt ved å bruke følgende kommando:

$sudosystemctl laste inn nginx på nytt

Omdiriger HTTP til HTTPS -versjon for spesifisert domene i Nginx

Etter at du har installert SSL -sertifikatet på domenet ditt, har du to serverblokkeringsalternativer for dette domenet. En blokk er for å lytte til HTTP -versjonen på port 80, og den andre versjonen er HTTPS på port 443. Men for å omdirigere et enkelt nettstedsdomene fra HTTP til HTTPS, må du åpne Nginx -konfigurasjonen. Du kan finne denne konfigurasjonsfilen i katalogen/etc/nginx/sites-available. Uansett, hvis du ikke fant denne filen, kan du søke etter den med /etc/nginx/nginx.conf,/usr/local/nginx/conf eller/usr/local/etc/nginx, og deretter utføre følgende endringer i denne filen:

server {
lytte 80;
Server navn domain-name.com www.domain-name.com;
komme tilbake 301https://domain-name.com$ request_uri;
}

La oss forstå koden ovenfor linje for linje.
Lytt 80 - ved hjelp av port 80, vil serveren lytte etter alle innkommende tilkoblinger som er spesifisert domene.

Servernavn domenenavn.com www.domene-navn.com-det angir domenenavnene. Så bytt det ut med domenenavnet til nettstedet ditt som du vil omdirigere.

Returner 301 https: //domain-name.com$request_uri-det flytter trafikken til HTTPS-versjonen av nettstedet. Variabelen $ request_uri brukes for hele den opprinnelige URI -forespørselen, der argumenter også er inkludert.

Ved å bruke følgende metode kan du omdirigere trafikk til HTTPS www-versjonen til ikke-www-versjonen av nettstedet. Det anbefales å opprette en viderekobling i en egen serverblokk for både ikke-www- og www-versjoner.

La oss forklare med et eksempel. Hvis du vil omdirigere www HTTPS-forespørslene til ikke-www-versjonen, følger du følgende konfigurasjon:

server {
lytte 80;
Server navn domain-name.com www.domain-name.com;
komme tilbake 301https://domain-name.com$ request_uri;
}
server {
lytte 443 ssl http2;
Server navn www.domene-navn.com;
#. . . annen kode
komme tilbake 301https://domain-name.com$ request_uri;
}
server {
lytte 443 ssl http2;
Server navn domenenavn.com;

#. . . annen kode
}

Erstatt domenenavnet med domenet ditt, for eksempel www.linuxhint.com.

Konklusjon

Vi har diskutert hvordan du omdirigerer trafikk fra HTTP -versjon til HTTPS på Nginx -serveren. Ved å endre Nginx -konfigurasjonsfilinnstillingen, kan du enkelt omdirigere trafikk til HTTPS enten for et spesifisert domene eller omdirigere alle. Denne metoden, som vi har nevnt i denne artikkelen, kan hjelpe deg med å gjøre nettstedet ditt sikrere ved å gjøre endringer i brukeropplevelsen.