Mūsdienu tendences internetā nosaka droša https saziņas protokola izmantošanu. Tāpēc migrēšanas laikā ir svarīgi, lai visa datplūsma, kas nāk uz http portu, automātiski tiktu novirzīta uz https. Tas ir svarīgs nosacījums ne tikai vietnēm, kas var zaudēt daļu datplūsmas, bet arī lietotājiem, lai neviens nevarētu pārraut nenodrošinātu savienojumu. Tālāk apskatīsim, kā konfigurēt pāradresēšanu no http uz https Nginx.
Mēs iesakām izmantot novirzīšanu ar statusa kodu 301. Tas informē meklētājprogrammas vai pārlūkprogrammu, ka pašreizējā saite ir atjaunināta un tā jāatjaunina savā datu bāzē, piemēram, pārlūkprogrammas grāmatzīmēs. Ja mēs atveram konfigurācijas failu, mēs varam atrast divas sadaļas serveris, https vietnei un http vietnei. Sadaļā http jūs vienkārši pāradresējat visus pieprasījumus uz https, izmantojot atgriešanās instrukciju, bet otrajā sadaļā jūs visu apstrādājat. Piemēram, pirmajā sadaļā:
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;
...
}
Otrajā sadaļā seko pieprasījumiem uz 433 portu:
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;
...
}
Kā redzat, sintakse šajā gadījumā ir ļoti vienkārša un skaidra. Tātad atgriešanas instrukcija ļauj mums atgriezt nepieciešamos servera atbildes kodus. Tādējādi mēs atgriežam 301 kodu, pastāvīgo novirzīšanu un URL, uz kuru mēs pārvirzīsim lietotāju. Papildus return direktīvai var izmantot arī rewrite instrukciju, kas veic tieši tādas pašas darbības:
rewrite ^/(.*)$ https://losst.com/$1 permanent;
Regulārās izteiksmes sintaksē atgriešanas 301 vietā var pievienot domēnu. Šādu konstrukciju var izmantot arī bez atsevišķa servera bloka:
if ($host ~* ^(losst.ru|www.losst.ru)$ ){
rewrite ^/(.*)$ https://losst.ru/$1 permanent;
}
Tālāk ir nepieciešams saglabāt failu un pārbaudīt Nginx konfigurāciju. Šim nolūkam tiek izmantots:
$ sudo nginx -t
Ja viss ir kārtībā, restartējiet Nginx:
$ sudo systemctl restart nginx
Pārbaudiet, kādu servera atbildi saņemat, izmantojot curl:
$ curl -I losst.ru
Vai ļaujiet utilītprogrammai sekot pilnam novirzīšanas ceļam:
$ curl ILa losst.ru
Kā redzat, konfigurēt pāradresēšanu uz https Nginx ir diezgan vienkārši, darbs tiek veikts, pievienojot vienu rindu konfigurācijas failā, pārējais ir visi papildu parametri.