Nginx přesměrovává HTTP na HTTPS

Nginx Redirect Http Https



Nginx, označovaný jako Engine x, je bezplatný, vysoce výkonný web s otevřeným zdrojovým kódem založený na Linuxu a reverzní proxy server, který je zodpovědný za správu a zvládání zátěže největšího provozu webových stránek na internetu. Nginx je výkonný nástroj pro přesměrování, který lze ve vašem systému snadno nakonfigurovat tak, aby přesměroval méně bezpečný nebo nešifrovaný webový provoz HTTP na šifrovaný a zabezpečený webový server HTTPS. Pokud jste správce systému nebo vývojář, používáte server Nginx pravidelně.

V tomto článku budeme pracovat na tom, jak přesměrovat webový provoz z HTTP na zabezpečený HTTPS v Nginx.







Odpovědi a požadavky jsou vráceny ve formě prostého textu v HTTP, zatímco HTTPS používá SSL/TLS k šifrování komunikace mezi systémem klient a server. Z mnoha důvodů se proto HTTPS používá přes HTTP, které jsou uvedeny níže:



  • Všechna data mezi klientem a serverem v obou směrech jsou šifrována. Pokud je však někdo zachycen, nemá přístup k citlivým informacím.
  • Když používáte HTTPS, Google Chrome a další prohlížeče považují doménu vaší webové stránky za bezpečnou.
  • Verze HTTPS zlepšuje výkon zadaného webu pomocí protokolu HTTP/2.
  • Pokud svou webovou doménu obsluhujete prostřednictvím HTTPS, bude mít web lepší hodnocení na Googlu, protože zvýhodňuje všechny zabezpečené webové stránky HTTPS.

Je upřednostňováno přesměrovat provoz HTTP na HTTPS v Nginx v samostatném bloku serveru pro každou verzi webu. Rovněž se doporučuje vyhnout se přesměrování provozu pomocí if, což může způsobit neobvyklé chování serveru.



Přesměrujte veškerý provoz z HTTP na HTTPS

Chcete -li přesměrovat veškerý provoz z verze HTTP na HTTPS, přidejte do konfiguračního souboru Nginx následující změny:





server {
poslouchat 80default_server;
název_serveru _;
vrátit se 301https: //$ hostitel$ request_uri;
}

Níže jsme zpracovali každý výše uvedený termín:

Naslouchejte 80 default_server - bude to signalizovat váš systém, který zachytí veškerý provoz HTTP na portu 80.
Server_name _ - je to doména, která se bude shodovat s jakýmkoli názvem hostitele.



Vraťte 301 https: // $ host $ request_uri - to řekne vašim vyhledávačům, že to trvale přesměrují. Určuje, že proměnná $ host obsahuje názvy domén.

Jakmile změníte nastavení konfigurace, musíte znovu načíst služby Nginx do svého systému. Znovu tedy načtěte své služby Nginx pomocí následujícího příkazu:

$sudosystemctl znovu načíst nginx

Přesměrovat verzi HTTP na HTTPS pro uvedenou doménu v Nginx

Po instalaci certifikátu SSL na vaši doménu budete mít pro tuto doménu dvě možnosti blokování serveru. Jeden blok je pro verzi HTTP naslouchající na portu 80 a druhá verze je HTTPS na portu 443. Chcete -li však přesměrovat jednu doménu webu z HTTP na HTTPS, musíte otevřít konfiguraci Nginx. Tento konfigurační soubor můžete vyhledat v adresáři/etc/nginx/sites-available. V každém případě, pokud jste tento soubor nenašli, můžete jej vyhledat pomocí /etc/nginx/nginx.conf,/usr/local/nginx/conf nebo/usr/local/etc/nginx a poté provést následující změny v tomto souboru:

server {
poslouchat 80;
název_serveru název_domény.com www.domena-jmeno.com;
vrátit se 301https://domain-name.com$ request_uri;
}

Pojďme pochopit výše uvedený kód řádek po řádku.
Naslouchat 80 - pomocí portu 80 bude server naslouchat všem doménám příchozích připojení.

Název_serveru název_domény.com www.domena-jmeno.com-určuje názvy domén. Nahraďte jej tedy názvem domény svého webu, který chcete přesměrovat.

Vrátit 301 https: //domain-name.com$request_uri-přesune provoz na verzi HTTPS webu. Proměnná $ request_uri se používá pro úplný původní identifikátor URI požadavku, ve kterém jsou také zahrnuty argumenty.

Pomocí následující metody můžete přesměrovat provoz na verzi HTTPS www na jinou verzi než www. Doporučuje se vytvořit přesměrování v samostatném bloku serveru pro verze jiné než www i www.

Vysvětlíme to na příkladu. Pokud chcete přesměrovat požadavky www HTTPS na verzi bez www, postupujte podle následující konfigurace:

server {
poslouchat 80;
název_serveru název_domény.com www.domena-jmeno.com;
vrátit se 301https://domain-name.com$ request_uri;
}
server {
poslouchat 443 ssl http2;
název_serveru www.domain-name.com;
#. . . jiný kód
vrátit se 301https://domain-name.com$ request_uri;
}
server {
poslouchat 443 ssl http2;
název_serveru název_domény.com;

#. . . jiný kód
}

Nahraďte název domény svou doménou, například www.linuxhint.com.

Závěr

Diskutovali jsme o tom, jak přesměrovat provoz z verze HTTP na HTTPS na serveru Nginx. Změnou nastavení konfiguračního souboru Nginx můžete snadno přesměrovat provoz na HTTPS buď pro zadanou doménu, nebo přesměrovat všechny. Tato metoda, kterou jsme zmínili v tomto článku, vám může pomoci učinit vaše webové stránky bezpečnější provedením jakýchkoli změn v uživatelském prostředí.