Betaalmethoden Abuse

Hoe omleiden van http naar https Nginx

22.03.2021, 19:19

Moderne trends op het internet dicteren het gebruik van het veilige https-communicatieprotocol. Bij een migratie is het dus belangrijk dat al het verkeer dat naar de http-poort gaat automatisch wordt omgeleid naar https. Dit is een belangrijke voorwaarde, niet alleen voor sites die mogelijk wat verkeer verliezen, maar ook voor gebruikers, zodat niemand een onbeveiligde verbinding kan verbreken. Laten we nu eens kijken hoe je redirect van http naar https Nginx kunt configureren.

Hoe redirect je van http naar https Nginx

We raden aan om redirect te gebruiken met statuscode 301. Dit vertelt zoekmachines of browsers dat de huidige link is bijgewerkt en moet worden bijgewerkt in de database, bijvoorbeeld bladwijzers van de browser. Als we het configuratiebestand openen, vinden we twee secties server, voor https site en http site. In de http-sectie stuurt u eenvoudig alle verzoeken door naar https met behulp van de retourinstructie, en in de tweede sectie verwerkt u alles. Bijvoorbeeld de eerste sectie:

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

Hoe omleiden van http naar https Nginx

De tweede sectie volgt verzoeken op de 433 poort:

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

Zoals je kunt zien, is de syntaxis in dit geval heel eenvoudig en duidelijk. Met de return-instructie kunnen we de noodzakelijke responscodes van de server retourneren. Zo retourneren we de 301-code, de permanente redirect en de URL waarnaar we de gebruiker gaan redirecten. Naast de return instructie kun je ook de rewrite instructie gebruiken, die precies dezelfde acties uitvoert:

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

In de syntaxis van reguliere expressies kun je in plaats van return 301 het domein toevoegen. Je kunt zo'n constructie ook gebruiken zonder een apart serverblok:

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

Vervolgens moet je het bestand opslaan en de Nginx-configuratie controleren. Hiervoor wordt het gebruikt:

$ sudo nginx -t

настройка Nginx

Als alles OK is, herstart je Nginx:

$ sudo systemctl restart nginx

Controleer wat voor serverrespons je krijgt met curl:

$ curl -I losst.ru

настройка Nginx

Of laat het hulpprogramma het volledige omleidingspad volgen:

$ curl ILa losst.ru

настройка Nginx

Zoals je kunt zien is het configureren van een redirect naar https nginx vrij eenvoudig, het werk wordt gedaan door één regel toe te voegen aan het configuratiebestand, de rest zijn allemaal extra parameters.