Makseviisid Abuse

Kuidas suunata ümber http-st https-i Nginx'ile

22.03.2021, 19:19

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.

Kuidas suunata ümber http-st https-i Nginx'ile

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;
...
}

Kuidas suunata ümber http-st https-i Nginx'ile

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

настройка Nginx

Kui kõik on korras, käivitage Nginx uuesti:

$ sudo systemctl restart nginx

Kontrollige, millise serveri vastuse saate curliga:

$ curl -I losst.ru

настройка Nginx

Või laske kommunaalprogrammil jälgida täielikku ümbersuunamise teed:

$ curl ILa losst.ru

настройка Nginx

Nagu näete, on https-i nginxi ümbersuunamise konfigureerimine üsna lihtne, töö toimub ühe rea lisamisega konfiguratsioonifaili, ülejäänud on kõik lisaparameetrid.