Tendințele moderne în domeniul internetului impun utilizarea protocolului de comunicare securizat https. Prin urmare, la migrare este important ca tot traficul care vine la portul http să fie redirecționat automat către https. Aceasta este o condiție importantă nu numai pentru site-urile care pot pierde ceva trafic, ci și pentru utilizatori, astfel încât nimeni să nu poată întrerupe o conexiune nesecurizată. În continuare, să vedem cum să configurăm redirecționarea de la http la https Nginx.
Vă recomandăm să utilizați redirecționarea cu codul de stare 301. Aceasta indică motoarelor de căutare sau browserului că link-ul curent a fost actualizat și ar trebui să fie actualizat în baza sa de date, de exemplu, marcajele browserului. Dacă deschidem fișierul de configurare, putem găsi două secțiuni server, pentru site-ul https și site-ul http. În secțiunea http pur și simplu redirecționați toate cererile către https folosind instrucțiunea de returnare, iar în a doua secțiune procesați totul. De exemplu, prima secțiune:
server {
server_name losst.ru www.losst.ru;
charset off;
index index.php;
ssi on;
return 301 https://$host:443$request_uri;
set $root_path /var/www/losst/data/www/losst.ru;
root $root_path;
listen :80 default_server;
...
}
A doua secțiune urmărește cererile pe portul 433:
server {
server_name losst.ru www.losst.ru;
ssl on;
ssl_certificate "/var/www/losst/losst.ru_le2.crtca";
ssl_certificate_key "/var/www/losst/losst.ru_le2.key";
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
add_header Strict-Transport-Security "max-age=31536000;";
charset off;
index index.php;
set $root_path /var/www/losst/data/www/losst.ru;
root $root_path;
listen :443 default_server;
...
}
După cum puteți vedea, sintaxa în acest caz este foarte simplă și clară. Deci, instrucțiunea return ne permite să returnăm codurile de răspuns necesare serverului. Astfel, returnăm codul 301, redirecționarea permanentă și URL-ul către care vom redirecționa utilizatorul. În plus față de directiva return, puteți utiliza instrucțiunea rewrite, care efectuează exact aceleași acțiuni:
rewrite ^/(.*)$ https://losst.com/$1 permanent;
În sintaxa expresiilor regulate, puteți adăuga domeniul în loc de return 301. De asemenea, puteți utiliza o astfel de construcție fără un bloc server separat:
if ($host ~* ^(losst.ru|www.losst.ru)$ ){
rewrite ^/(.*)$ https://losst.ru/$1 permanent;
}
Apoi, trebuie să salvați fișierul și să verificați configurația Nginx. În acest scop se utilizează:
$ sudo nginx -t
Dacă totul este în regulă, reporniți Nginx:
$ sudo systemctl restart nginx
Verificați ce tip de răspuns al serverului obțineți cu curl:
$ curl -I losst.ru
Sau lăsați utilitarul să urmeze calea de redirecționare completă:
$ curl ILa losst.ru
După cum puteți vedea, configurarea unei redirecționări către https nginx este destul de simplă, munca se face prin adăugarea unei linii la fișierul de configurare, restul fiind toți parametrii suplimentari.