Betalingsmåter Abuse

Hvordan omdirigere fra http til https Nginx

22.03.2021, 19:19

Moderne trender på Internett tilsier bruk av den sikre kommunikasjonsprotokollen https. Ved migrering er det derfor viktig at all trafikk som kommer til http-porten, automatisk omdirigeres til https. Dette er en viktig forutsetning, ikke bare for nettsteder som kan miste noe trafikk, men også for brukerne, slik at ingen kan bryte en usikret tilkobling. La oss nå se hvordan du konfigurerer omdirigering fra http til https Nginx.

Hvordan omdirigere fra http til https Nginx

Vi anbefaler å bruke omdirigering med statuskode 301. Det forteller søkemotorer eller nettleser at den nåværende lenken har blitt oppdatert, og den bør oppdateres i databasen, for eksempel nettleserbokmerker. Hvis vi åpner konfigurasjonsfilen, kan vi finne to seksjoner server, for https-nettsted og http-nettsted. I http-delen omdirigerer du ganske enkelt alle forespørsler til https ved hjelp av returinstruksjonen, og i den andre delen behandler du alt. For eksempel den første delen:

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

Hvordan omdirigere fra http til https Nginx

Den andre delen følger forespørsler på 433-porten:

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

Som du kan se, er syntaksen i dette tilfellet veldig enkel og klar. Så returinstruksjonen lar oss returnere de nødvendige serverresponskodene. Dermed returnerer vi 301-koden, den permanente viderekoblingen og URL-en som vi skal omdirigere brukeren til. I tillegg til returdirektivet kan du bruke omskrivningsinstruksjonen, som utfører nøyaktig de samme handlingene:

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

I syntaksen til regulære uttrykk kan du legge til domenet i stedet for retur 301. Du kan også bruke en slik konstruksjon uten en egen serverblokk:

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

Deretter må du lagre filen og sjekke Nginx-konfigurasjonen. For dette formålet er det brukt:

$ sudo nginx -t

настройка Nginx

Hvis alt er i orden, start Nginx på nytt:

$ sudo systemctl restart nginx

Sjekk hva slags serverrespons du får med curl:

$ curl -I losst.ru

настройка Nginx

Eller la verktøyet følge hele omdirigeringsstien:

$ curl ILa losst.ru

настройка Nginx

Som du kan se, er det ganske enkelt å konfigurere en omdirigering til https nginx, arbeidet gjøres ved å legge til en linje i konfigurasjonsfilen, resten er alle tilleggsparametere.