Nginx Redirecționează HTTP către HTTPS

Nginx Redirect Http Https



Nginx, pronunțat ca Engine x, este un site web de înaltă performanță bazat pe Linux gratuit și open-source și un server proxy invers care este responsabil pentru gestionarea și gestionarea încărcării celui mai mare trafic de site-uri web de pe internet. Nginx este un instrument puternic de redirecționare care poate fi configurat cu ușurință pe sistemul dvs. pentru a redirecționa traficul web HTTP mai puțin sigur sau necriptat către un server web HTTPS criptat și securizat. Dacă sunteți administrator de sistem sau dezvoltator, atunci utilizați regulat serverul Nginx.

Î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 sistemul 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ă 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:





Server {
asculta 80default_server;
numele serverului _;
întoarcere 301https: //$ gazdă$ 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 din sistemul dvs. Deci, reîncărcați serviciile Nginx utilizând următoarea comandă:

$sudosystemctl reoad nginx

Redirecț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 și apoi efectuați următoarele modificări în acest fișier:

Server {
asculta 80;
numele serverului domain-name.com www.domain-name.com;
întoarcere 301https://domain-name.com$ request_uri;
}

Să înțelegem codul de mai sus linie cu linie.
Ascultați 80 - folosind portul 80, serverul va asculta toate domeniile specificate pentru conexiunile primite.

Server_name domain-name.com www.domain-name.com - specifică numele domeniilor. Deci, înlocuiți-l cu numele de domeniu al site-ului web pe care doriți să îl redirecționați.

Returnează 301 https: //domain-name.com$request_uri - mută traficul către versiunea HTTPS a site-ului. Variabila $ request_uri este utilizată pentru URI-ul complet al cererii originale, î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:

Server {
asculta 80;
numele serverului domain-name.com www.domain-name.com;
întoarcere 301https://domain-name.com$ request_uri;
}
Server {
asculta 443 ssl http2;
numele serverului www.domain-name.com;
#. . . alt cod
întoarcere 301https://domain-name.com$ request_uri;
}
Server {
asculta 443 ssl http2;
numele serverului domain-name.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 totul. 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.