Internetin nykyaikaiset suuntaukset edellyttävät turvallisen https-viestintäprotokollan käyttöä. Siirron yhteydessä on siis tärkeää, että kaikki http-porttiin tuleva liikenne ohjataan automaattisesti https-porttiin. Tämä on tärkeä ehto paitsi sivustoille, jotka saattavat menettää jonkin verran liikennettä, myös käyttäjille, jotta kukaan ei voi murtaa suojaamatonta yhteyttä. Seuraavaksi katsotaan, miten määritetään uudelleenohjaus http:stä https:ään Nginxissä.
Suosittelemme uudelleenohjauksen käyttämistä tilakoodilla 301. Se kertoo hakukoneille tai selaimelle, että nykyinen linkki on päivitetty ja se on päivitettävä sen tietokantaan, esimerkiksi selaimen kirjanmerkkeihin. Jos avaamme konfiguraatiotiedoston, voimme löytää kaksi osiota palvelin, https-sivustolle ja http-sivustolle. http-osiossa yksinkertaisesti ohjataan kaikki pyynnöt https:ään paluuohjeen avulla, ja toisessa osiossa käsitellään kaikki. Esimerkiksi ensimmäinen osio:
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;
...
}
Toisessa osiossa seurataan pyyntöjä porttiin 433:
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;
...
}
Kuten näet, syntaksi on tässä tapauksessa hyvin yksinkertainen ja selkeä. Return-ohjeen avulla voimme siis palauttaa tarvittavat palvelimen vastauskoodit. Palautamme siis 301-koodin, pysyvän uudelleenohjauksen ja URL-osoitteen, johon aiomme ohjata käyttäjän uudelleen. return-direktiivin lisäksi voit käyttää rewrite-käskyä, joka suorittaa täsmälleen samat toimet:
rewrite ^/(.*)$ https://losst.com/$1 permanent;
Säännöllisten lausekkeiden syntaksissa voit lisätä domainin return 301:n sijaan. Voit käyttää tällaista rakennetta myös ilman erillistä palvelinlohkoa:
if ($host ~* ^(losst.ru|www.losst.ru)$ ){
rewrite ^/(.*)$ https://losst.ru/$1 permanent;
}
Seuraavaksi sinun on tallennettava tiedosto ja tarkistettava Nginxin kokoonpano. Tähän tarkoitukseen käytetään:
$ sudo nginx -t
Jos kaikki on kunnossa, käynnistä Nginx uudelleen:
$ sudo systemctl restart nginx
Tarkista, millaisen palvelinvastauksen saat curlilla:
$ curl -I losst.ru
Tai anna apuohjelman seurata koko uudelleenohjauspolkua:
$ curl ILa losst.ru
Kuten näette, https-uudelleenohjauksen määrittäminen nginxiin on melko yksinkertaista, työ tehdään lisäämällä yksi rivi konfigurointitiedostoon, loput ovat kaikki lisäparametreja.