Mokėjimo būdai Abuse

Kaip nukreipti iš http į https Nginx

22.03.2021, 19:19

Šiuolaikinės interneto tendencijos reikalauja naudoti saugų https ryšio protokolą. Todėl migruojant svarbu, kad visas srautas, kuris ateina į http prievadą, būtų automatiškai nukreiptas į https. Tai svarbi sąlyga ne tik svetainėms, kurios gali prarasti dalį srauto, bet ir naudotojams, kad niekas negalėtų nutraukti neapsaugoto ryšio. Toliau pažiūrėkime, kaip sukonfigūruoti "Nginx" nukreipimą iš http į https.

Kaip nukreipti iš http į https Nginx

Rekomenduojame naudoti nukreipimą su būsenos kodu 301. Jis praneša paieškos sistemoms arba naršyklei, kad dabartinė nuoroda buvo atnaujinta ir ji turėtų būti atnaujinta jos duomenų bazėje, pavyzdžiui, naršyklės žymėse. Jei atsidarysime konfigūracijos failą, rasime du serverio skyrius, skirtus https svetainei ir http svetainei. Skyriuje http tiesiog nukreipiate visas užklausas į https, naudodami grąžinimo instrukciją, o antrajame skyriuje viską apdorojate. Pavyzdžiui, pirmasis skirsnis:

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

Kaip nukreipti iš http į https Nginx

Antrasis skirsnis seka užklausas 433 prievadu:

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

Kaip matote, šiuo atveju sintaksė yra labai paprasta ir aiški. Taigi grąžinimo instrukcija leidžia mums grąžinti reikiamus serverio atsakymo kodus. Taigi grąžiname 301 kodą, nuolatinį nukreipimą ir URL, į kurį ketiname nukreipti naudotoją. Be grąžinimo direktyvos, galite naudoti ir perrašymo instrukciją, kuri atlieka lygiai tuos pačius veiksmus:

rewrite ^/(.*)$ https://losst.com/$1 permanent;

Reguliariosios išraiškos sintaksėje vietoj return 301 galite įrašyti domeną. Tokią konstrukciją galite naudoti ir be atskiro serverio bloko:

if ($host ~* ^(losst.ru|www.losst.ru)$ ){
rewrite ^/(.*)$ https://losst.ru/$1 permanent;
}

Toliau reikia išsaugoti failą ir patikrinti "Nginx" konfigūraciją. Tam tikslui jis naudojamas:

$ sudo nginx -t

настройка Nginx

Jei viskas gerai, paleiskite "Nginx" iš naujo:

$ sudo systemctl restart nginx

Patikrinkite, kokį serverio atsakymą gaunate naudodami curl:

$ curl -I losst.ru

настройка Nginx

Arba leiskite įrangai sekti visą nukreipimo kelią:

$ curl ILa losst.ru

настройка Nginx

Kaip matote, konfigūruoti nukreipimą į https nginx yra gana paprasta, darbas atliekamas pridedant vieną eilutę į konfigūracijos failą, visa kita yra papildomi parametrai.