A modern internetes trendek a biztonságos https kommunikációs protokoll használatát írják elő. Ezért az áttérés során fontos, hogy a http portra érkező forgalom automatikusan átirányításra kerüljön https-re. Ez nemcsak a webhelyek számára fontos feltétel, amelyek elveszíthetnek némi forgalmat, hanem a felhasználók számára is, hogy senki ne tudjon megszakítani egy nem biztonságos kapcsolatot. Ezután nézzük meg, hogyan lehet beállítani az átirányítást http-ről https-re az Nginx.
Javasoljuk a 301-es státuszkódú átirányítás használatát. 301-es státuszkóddal jelzi a keresőmotoroknak vagy a böngészőnek, hogy az aktuális link frissült, és frissíteni kell az adatbázisában, például a böngésző könyvjelzőiben. Ha megnyitjuk a konfigurációs fájlt, két szerver részt találunk, a https oldal és a http oldal számára. A http szakaszban egyszerűen átirányítjuk az összes kérést https-re a return utasítással, a második szakaszban pedig mindent feldolgozunk. Például az első szakaszban:
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 második szakasz a 433-as porton érkező kéréseket követi:
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;
...
}
Mint látható, a szintaxis ebben az esetben nagyon egyszerű és világos. Tehát a return utasítással visszaküldhetjük a szükséges szerver válaszkódokat. Így visszaadjuk a 301-es kódot, az állandó átirányítást és az URL-t, amelyre átirányítjuk a felhasználót. A return utasítás mellett használhatjuk a rewrite utasítást is, amely pontosan ugyanazokat a műveleteket hajtja végre:
rewrite ^/(.*)$ https://losst.com/$1 permanent;
A reguláris kifejezések szintaxisában a return 301 helyett hozzáadhatja a tartományt. Egy ilyen konstrukciót külön szerverblokk nélkül is használhatunk:
if ($host ~* ^(losst.ru|www.losst.ru)$ ){
rewrite ^/(.*)$ https://losst.ru/$1 permanent;
}
Ezután el kell menteni a fájlt, és ellenőrizni kell az Nginx konfigurációját. Erre a célra használják:
$ sudo nginx -t
Ha minden rendben van, indítsa újra az Nginxet:
$ sudo systemctl restart nginx
Ellenőrizze, hogy milyen szerverválasz érkezik a curl segítségével:
$ curl -I losst.ru
Vagy hagyja, hogy a segédprogram kövesse a teljes átirányítási útvonalat:
$ curl ILa losst.ru
Mint látható, az átirányítás konfigurálása https nginxre elég egyszerű, a munka egy sor hozzáadásával történik a konfigurációs fájlhoz, a többi az összes további paraméter.