Nginx preusmeri HTTP na HTTPS

Nginx Redirect Http Https



Nginx, izgovorjen kot Engine x, je brezplačen, odprtokodni visoko zmogljiv splet na osnovi Linuxa in povratni proxy strežnik, ki je odgovoren za upravljanje in obravnavo obremenitve največjega prometa spletnih mest na internetu. Nginx je močno orodje za preusmerjanje, ki ga lahko preprosto konfigurirate v sistemu za preusmeritev manj varnega ali nešifriranega spletnega prometa HTTP na šifriran in zavarovani spletni strežnik HTTPS. Če ste sistemski skrbnik ali razvijalec, potem redno uporabljate strežnik Nginx.

V tem članku bomo delali na tem, kako preusmeriti spletni promet s HTTP na varen HTTPS v Nginxu.







Odzivi in ​​zahteve se vrnejo v obliki navadnega besedila v HTTP, medtem ko HTTPS uporablja SSL/TLS za šifriranje komunikacije med odjemalskim in strežniškim sistemom. Zato se zaradi številnih razlogov HTTPS uporablja prek HTTP, ki so navedeni spodaj:



  • Vsi podatki med odjemalcem in strežnikom v obeh smereh so šifrirani. Nihče pa ne more dostopati do občutljivih podatkov, če jih prestreže.
  • Ko uporabljate protokol HTTPS, bodo Google Chrome in drugi brskalniki obravnavali domeno vašega spletnega mesta kot varno.
  • Različica HTTPS izboljša protokol določenega spletnega mesta s protokolom HTTP/2.
  • Če domeni svojega spletnega mesta strežite prek protokola HTTPS, se bo spletno mesto bolje uvrstilo v Googlu, saj daje prednost vsem zavarovanim spletnim mestom HTTPS.

Zaželeno je, da promet HTTP preusmerite na HTTPS v Nginxu v ločenem strežniškem bloku za vsako različico spletnega mesta. Priporočljivo je tudi, da se izognete preusmerjanju prometa z uporabo smeri, ki lahko povzroči nenavadno vedenje strežnika.



Preusmerite ves promet s HTTP na HTTPS

V konfiguracijsko datoteko Nginx dodajte naslednje spremembe, da preusmerite ves promet iz različice HTTP v različico HTTPS:





strežnika {
poslušaj 80default_server;
server_name _;
vrnitev 301https: //$ host$ request_uri;
}

Spodaj smo obravnavali vsak zgoraj omenjeni izraz:

Poslušaj 80 default_server - to bo signaliziralo vašemu sistemu, da ujame ves promet HTTP na vratih 80.
Server_name _ - to je domena, ki se bo ujemala s katerim koli imenom gostitelja.



Vrni 301 https: // $ host $ request_uri - to pove vašim iskalnikom, da ga trajno preusmerijo. Določa, da ima spremenljivka $ host imena domen.

Ko spremenite konfiguracijske nastavitve, morate znova naložiti storitve Nginx v sistem. Torej znova naložite svoje storitve Nginx z naslednjim ukazom:

$sudosystemctl znova naložite nginx

Preusmerite različico HTTP na različico HTTPS za določeno domeno v Nginxu

Po namestitvi potrdila SSL v svojo domeno boste imeli za to domeno dve možnosti blokov strežnika. En blok je za različico HTTP, ki posluša na vratih 80, druga različica pa je HTTPS na vratih 443. Če pa želite preusmeriti eno domeno spletnega mesta s HTTP na HTTPS, morate odpreti konfiguracijo Nginx. To konfiguracijsko datoteko lahko poiščete v imeniku/etc/nginx/sites-available. V vsakem primeru, če te datoteke niste našli, jo lahko poiščete z /etc/nginx/nginx.conf,/usr/local/nginx/conf ali/usr/local/etc/nginx in nato izvedete naslednje spremembe v tej datoteki:

strežnika {
poslušaj 80;
server_name domain-name.com www.domena-name.com;
vrnitev 301https://domain-name.com$ request_uri;
}

Razumejmo zgornjo kodo po vrsticah.
Poslušaj 80 - prek vrat 80 bo strežnik poslušal vse dohodne povezave, navedene v domeni.

Server_name domain-name.com www.domain-name.com-podaja imena domen. Zato ga zamenjajte z imenom domene spletnega mesta, ki ga želite preusmeriti.

Vrni 301 https: //domain-name.com$request_uri-premakne promet v različico spletnega mesta HTTPS. Spremenljivka $ request_uri se uporablja za celoten izvirni URI zahtevka, v katerega so vključeni tudi argumenti.

Z naslednjo metodo lahko promet preusmerite v različico HTTPS www na različico spletnega mesta, ki ni www. Priporočamo, da za različice, ki niso www in www, ustvarite preusmeritev v ločenem strežniškem bloku.

Razložimo s primerom. Če želite preusmeriti zahteve HTTPS www na različico, ki ni www, sledite naslednji konfiguraciji:

strežnika {
poslušaj 80;
server_name domain-name.com www.domena-name.com;
vrnitev 301https://domain-name.com$ request_uri;
}
strežnika {
poslušaj 443 ssl http2;
server_name www.domena-ime.com;
#. . . drugo kodo
vrnitev 301https://domain-name.com$ request_uri;
}
strežnika {
poslušaj 443 ssl http2;
server_name domain-name.com;

#. . . drugo kodo
}

Ime domene zamenjajte s svojo domeno, na primer www.linuxhint.com.

Zaključek

Govorili smo o tem, kako preusmeriti promet iz različice HTTP v HTTPS na strežniku Nginx. Če spremenite nastavitev konfiguracijske datoteke Nginx, lahko promet preprosto preusmerite na HTTPS za določeno domeno ali preusmerite vse. Ta metoda, ki smo jo omenili v tem članku, vam lahko pomaga narediti varnost vašega spletnega mesta tako, da spremenite uporabniško izkušnjo.