Nginx preusmjerava HTTP na HTTPS

Nginx Redirect Http Https



Nginx, izgovara se kao Engine x, besplatan je web stranica visokih performansi otvorenog koda zasnovana na Linuxu i obrnuti proxy poslužitelj koji je odgovoran za upravljanje i rukovanje opterećenjem najvećeg prometa internetskih stranica. Nginx je moćan alat za preusmjeravanje koji se može jednostavno konfigurirati na vašem sustavu za preusmjeravanje manje sigurnog ili nešifriranog HTTP web prometa na kriptirani i zaštićeni HTTPS web poslužitelj. Ako ste administrator sustava ili programer, tada redovito koristite Nginx poslužitelj.

U ovom ćemo članku raditi na tome kako preusmjeriti web promet s HTTP -a na siguran HTTPS u Nginxu.







Odgovori i zahtjevi vraćaju se u obliku otvorenog teksta u HTTP -u, dok HTTPS koristi SSL/TLS za šifriranje komunikacije između klijentskog i poslužiteljskog sustava. Stoga se iz mnogo razloga HTTPS koristi preko HTTP -a, koji su navedeni u nastavku:



  • Svi podaci između klijenta i poslužitelja u oba smjera su šifrirani. Međutim, nitko ne može pristupiti osjetljivim podacima ako ih presretne.
  • Kada koristite HTTPS, Google Chrome i drugi preglednici smatrat će domenu vaše web stranice sigurnom.
  • HTTPS verzija poboljšava specificirane performanse web stranice pomoću HTTP/2 protokola.
  • Ako svoju domenu web stranice opslužujete putem HTTPS -a, tada će se web stranica bolje rangirati na Googleu jer daje prednost svim web stranicama zaštićenim HTTPS -om.

Poželjno je preusmjeriti promet HTTP na HTTPS u Nginxu u zasebnom bloku poslužitelja za svaku verziju web stranice. Također se preporučuje izbjegavanje preusmjeravanja prometa korištenjem smjera if koji može uzrokovati neuobičajeno ponašanje poslužitelja.



Preusmjerite sav promet s HTTP -a na HTTPS

Dodajte sljedeće promjene u konfiguracijsku datoteku Nginx kako biste sav promet preusmjerili s HTTP na HTTPS verziju:





poslužitelja {
slušati 80zadani_poslužitelj;
server_name _;
povratak 301https: //$ domaćin$ request_uri;
}

U nastavku smo razradili svaki gore spomenuti pojam:

Listen 80 default_server - ovo će signalizirati vašem sustavu da hvata sav HTTP promet na portu 80.
Server_name _ - to je domena koja će se podudarati s bilo kojim imenom hosta.



Vrati 301 https: // $ host $ request_uri - to govori vašim tražilicama da ga trajno preusmjere. Određuje da varijabla $ host sadrži nazive domena.

Nakon što promijenite postavke konfiguracije, morate ponovno učitati Nginx usluge na svom sustavu. Dakle, ponovno učitajte svoje Nginx usluge pomoću sljedeće naredbe:

$sudosystemctl ponovno učitavanje nginxa

Preusmjeri verziju HTTP na HTTPS za Navedenu domenu u Nginxu

Nakon što instalirate SSL certifikat na svoju domenu, imat ćete dvije mogućnosti bloka poslužitelja za ovu domenu. Jedan blok je za HTTP verziju koja sluša na portu 80, a druga verzija je HTTPS na portu 443. Međutim, da biste preusmjerili jednu domenu web stranice s HTTP na HTTPS, morate otvoriti konfiguraciju Nginx. Ovu konfiguracijsku datoteku možete pronaći u direktoriju/etc/nginx/sites-available. U svakom slučaju, ako niste pronašli ovu datoteku, možete je potražiti pomoću /etc/nginx/nginx.conf,/usr/local/nginx/conf ili/usr/local/etc/nginx, a zatim izvršite sljedeće promjene u ovoj datoteci:

poslužitelja {
slušati 80;
server_name domain-name.com www.domena-name.com;
povratak 301https://domain-name.com$ request_uri;
}

Shvatimo gornji kod red po redak.
Slušaj 80 - poslužitelj će posluživati ​​sve dolazne veze putem priključka 80, domena.

Server_name domain-name.com www.domain-name.com-određuje nazive domena. Stoga ga zamijenite imenom domene web lokacije koje želite preusmjeriti.

Vrati 301 https: //domain-name.com$request_uri-premješta promet na HTTPS verziju web stranice. Varijabla $ request_uri koristi se za potpuni izvorni URI zahtjeva u koji su također uključeni argumenti.

Pomoću sljedeće metode možete preusmjeriti promet na HTTPS www verziju na inačicu web stranice koja nije www. Preporučuje se stvaranje preusmjeravanja u zasebnom bloku poslužitelja za verzije koje nisu www i www.

Objasnimo primjerom. Ako želite HTTPS zahtjeve www preusmjeriti na inačicu koja nije www, slijedite sljedeću konfiguraciju:

poslužitelja {
slušati 80;
server_name domain-name.com www.domena-name.com;
povratak 301https://domain-name.com$ request_uri;
}
poslužitelja {
slušati 443 ssl http2;
server_name www.domena-ime.com;
#. . . drugi kod
povratak 301https://domain-name.com$ request_uri;
}
poslužitelja {
slušati 443 ssl http2;
server_name domain-name.com;

#. . . drugi kod
}

Zamijenite naziv domene svojom domenom, poput www.linuxhint.com.

Zaključak

Razgovarali smo o tome kako preusmjeriti promet s HTTP verzije na HTTPS na poslužitelju Nginx. Promjenom postavke konfiguracijske datoteke Nginx, možete jednostavno preusmjeriti promet na HTTPS za određenu domenu ili preusmjeriti sve. Ova metoda, koju smo spomenuli u ovom članku, može vam pomoći da učinite svoju web stranicu sigurnijom unošenjem bilo kakvih promjena u korisničko iskustvo.