În acest articol, vom lucra la modul de redirecționare a traficului web de la HTTP la un HTTPS securizat în Nginx.
Răspunsurile și solicitările sunt returnate sub formă de text simplu în HTTP, în timp ce HTTPS folosește SSL / TLS pentru a cripta comunicația dintre client și sistem server. Prin urmare, din mai multe motive, HTTPS este utilizat pe HTTP, care sunt enumerate mai jos:
- Toate datele dintre client-server în ambele direcții sunt criptate. Cu toate acestea, oricine nu poate accesa informații sensibile dacă este interceptat.
- Când utilizați HTTPS, Google Chrome și alte browsere vor considera domeniul site-ului dvs. web ca fiind sigur.
- Versiunea HTTPS îmbunătățește performanța site-ului web specificat utilizând protocolul HTTP / 2.
- Dacă deserviți domeniul site-ului dvs. web prin HTTPS, atunci site-ul web se va clasa mai bine pe Google, deoarece favorizează toate site-urile securizate HTTPS.
Este de preferat să redirecționați traficul HTTP către HTTPS în Nginx într-un bloc de server separat pentru fiecare versiune de site. De asemenea, se recomandă evitarea redirecționării traficului folosind direcția „dacă” care poate provoca un comportament neobișnuit al serverului.
Redirecționați tot traficul de la HTTP la HTTPS
Adăugați următoarele modificări în fișierul de configurare Nginx pentru a redirecționa tot traficul de la HTTP la versiunea HTTPS:
Serverascultă 80 default_server;
numele serverului _;
returnează 301 https: // $ host $ request_uri;
Mai jos, am elaborat fiecare termen menționat mai sus:
Ascultă 80 default_server - acesta îți va semnaliza sistemul care captează tot traficul HTTP din Portul 80.
Server_name _ - este domeniul care se va potrivi cu orice nume de gazdă.
Returnează 301 https: // $ host $ request_uri - aceasta le spune motoarelor de căutare care îl redirecționează permanent. Specifică faptul că variabila $ host deține numele domeniilor.
După ce modificați setările de configurare, trebuie să reîncărcați serviciile Nginx de pe sistemul dvs. Deci, reîncărcați serviciile Nginx utilizând următoarea comandă:
$ sudo systemctl reîncarcă nginxRedirecționați versiunea HTTP către HTTPS pentru domeniul specificat în Nginx
După instalarea certificatului SSL pe domeniul dvs., veți avea două opțiuni de blocuri de server pentru acest domeniu. Un bloc este pentru versiunea HTTP care ascultă pe portul 80, iar a doua versiune este HTTPS pe portul 443. Cu toate acestea, pentru a redirecționa un singur domeniu de site web de la HTTP la HTTPS, trebuie să deschideți configurația Nginx. Puteți localiza acest fișier de configurare în directorul / etc / nginx / sites-available. În orice caz, dacă nu ați găsit acest fișier, îl puteți căuta cu / etc / nginx / nginx.conf, / usr / local / nginx / conf sau / usr / local / etc / nginx, apoi efectuați următoarele modificări în acest fișier:
Serverascultă 80;
server_name nume de domeniu.com www.numele domeniului.com;
returnează 301 https: // nume-domeniu.com $ request_uri;
Să înțelegem codul rând de rând de mai sus.
Ascultați 80 - utilizând portul 80, serverul va asculta toate domeniile specificate pentru conexiunile primite.
Server_name nume de domeniu.com www.numele domeniului.com - specifică numele domeniilor. Deci, înlocuiți-l cu numele de domeniu al site-ului dvs. web pe care doriți să îl redirecționați.
Returnează 301 https: // nume-domeniu.com $ request_uri - mută traficul către versiunea HTTPS a site-ului. Variabila $ request_uri este utilizată pentru URI-ul complet de solicitare original în care sunt incluse și argumentele.
Utilizând următoarea metodă, puteți redirecționa traficul către versiunea HTTPS www către versiunea non-www a site-ului. Este recomandat să creați o redirecționare într-un bloc de server separat atât pentru versiunile non-www, cât și pentru cele www.
Să explicăm cu un exemplu. Dacă doriți să redirecționați solicitările www HTTPS către versiunea non-www, atunci urmați următoarea configurație:
Serverascultă 80;
server_name nume-domeniu.com www.numele domeniului.com;
returnează 301 https: // nume-domeniu.com $ request_uri;
Server
asculta 443 ssl http2;
server_name www.numele domeniului.com;
# ... alt cod
returnează 301 https: // nume-domeniu.com $ request_uri;
Server
asculta 443 ssl http2;
server_name nume de domeniu.com;
# ... alt cod
Înlocuiți numele domeniului cu domeniul dvs., cum ar fi www.linuxhint.com.
Concluzie
Am discutat despre cum să redirecționați traficul din versiunea HTTP către HTTPS pe serverul Nginx. Modificând setarea fișierului de configurare Nginx, puteți redirecționa cu ușurință traficul către HTTPS fie pentru un domeniu specificat, fie redirecționați toate. Această metodă, pe care am menționat-o în acest articol, vă poate ajuta să vă faceți site-ul web mai sigur făcând orice schimbări în experiența utilizatorului.