Moderna trender inom Internet dikterar användningen av det säkra kommunikationsprotokollet https. Vid migreringen är det därför viktigt att all trafik som kommer till http-porten automatiskt omdirigeras till https. Detta är ett viktigt villkor inte bara för webbplatser som kan förlora lite trafik, utan också för användare, så att ingen kan bryta en osäker anslutning. Låt oss nu se hur man konfigurerar omdirigering från http till https Nginx.
Vi rekommenderar att du använder omdirigering med statuskod 301. Det berättar för sökmotorer eller webbläsare att den aktuella länken har uppdaterats och den bör uppdateras i sin databas, till exempel webbläsarens bokmärken. Om vi öppnar konfigurationsfilen kan vi hitta två sektioner server, för https-webbplats och http-webbplats. I http-avsnittet omdirigerar du helt enkelt alla förfrågningar till https med hjälp av returinstruktionen, och i det andra avsnittet bearbetar du allt. Till exempel den första sektionen:
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;
...
}
Den andra sektionen följer förfrågningar 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 är syntaxen i det här fallet mycket enkel och tydlig. Så returinstruktionen tillåter oss att returnera de nödvändiga serversvarskoderna. Således returnerar vi 301-koden, den permanenta omdirigeringen och den URL som vi ska omdirigera användaren till. Förutom returdirektivet kan du använda omskrivningsinstruktionen, som utför exakt samma åtgärder:
rewrite ^/(.*)$ https://losst.com/$1 permanent;
I syntaxen för reguljära uttryck kan du lägga till domänen istället för att returnera 301. Du kan också använda en sådan konstruktion utan ett separat serverblock:
if ($host ~* ^(losst.ru|www.losst.ru)$ ){
rewrite ^/(.*)$ https://losst.ru/$1 permanent;
}
Därefter måste du spara filen och kontrollera Nginx-konfigurationen. För detta ändamål används den:
$ sudo nginx -t
Om allt är OK, starta om Nginx:
$ sudo systemctl restart nginx
Kontrollera vilken typ av serversvar du får med curl:
$ curl -I losst.ru
Eller låt verktyget följa den fullständiga omdirigeringssökvägen:
$ curl ILa losst.ru
Som du kan se är det ganska enkelt att konfigurera en omdirigering till https nginx, arbetet görs genom att lägga till en rad i konfigurationsfilen, resten är alla ytterligare parametrar.