Kaasaegsed suundumused Internetis dikteerivad turvalise https-sideprotokolli kasutamist. Seega on üleminekul oluline, et kogu http-porti sisenev liiklus suunatakse automaatselt ümber https-porti. See on oluline tingimus mitte ainult veebisaitide jaoks, mis võivad kaotada osa liiklust, vaid ka kasutajate jaoks, et keegi ei saaks turvamata ühendust katkestada. Järgnevalt vaatame, kuidas konfigureerida http-lt https-le Nginx'i ümberjuhtimist.
Soovitame kasutada ümbersuunamist staatuskoodiga 301. See ütleb otsingumootoritele või brauserile, et praegune link on uuendatud ja seda tuleks uuendada oma andmebaasis, näiteks brauseri järjehoidjate puhul. Kui me avame konfiguratsioonifaili, leiame kaks sektsiooni server, https saidi ja http saidi jaoks. http sektsioonis suunatakse lihtsalt kõik päringud ümber https-ile, kasutades tagasipöördumisjuhist, ja teises sektsioonis töödeldakse kõike. Näiteks esimeses sektsioonis:
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;
...
}
Teises sektsioonis jälgitakse päringuid 433. sadamale:
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;
...
}
Nagu näete, on süntaks sel juhul väga lihtne ja selge. Seega võimaldab return-käsklus meil tagastada vajalikud serveri vastusekoodid. Seega tagastame 301-koodi, püsiva ümbersuunamise ja URL-i, kuhu me kasutajat ümber suuname. Lisaks return-direktiivile saab kasutada ka rewrite-käsku, mis teeb täpselt samu toiminguid:
rewrite ^/(.*)$ https://losst.com/$1 permanent;
Regulaaravaldiste süntaksis võib return 301 asemel lisada domeeni. Sellist konstruktsiooni võib kasutada ka ilma eraldi serveriplokita:
if ($host ~* ^(losst.ru|www.losst.ru)$ ){
rewrite ^/(.*)$ https://losst.ru/$1 permanent;
}
Järgnevalt tuleb fail salvestada ja kontrollida Nginxi konfiguratsiooni. Selleks kasutatakse seda:
$ sudo nginx -t
Kui kõik on korras, käivitage Nginx uuesti:
$ sudo systemctl restart nginx
Kontrollige, millise serveri vastuse saate curliga:
$ curl -I losst.ru
Või laske kommunaalprogrammil jälgida täielikku ümbersuunamise teed:
$ curl ILa losst.ru
Nagu näete, on https-i nginxi ümbersuunamise konfigureerimine üsna lihtne, töö toimub ühe rea lisamisega konfiguratsioonifaili, ülejäänud on kõik lisaparameetrid.