LinuxDays 2017 - Nasazení HA loadbalanceru - HAProxy + Let's Encrypt - Pavel Pulec
Obsah:
V této příručce vysvětlíme, jak přesměrovat provoz HTTP na HTTPS v Nginxu.
Výraz „engine x“ společnosti Nginx je bezplatný, výkonný HTTP a reverzní proxy server s otevřeným zdrojovým kódem odpovědný za zpracování zátěže některých z největších webů na internetu.
Na rozdíl od HTTP, kde jsou požadavky a odpovědi odesílány a vráceny v prostém textu, HTTPS používá k šifrování komunikace mezi klientem a serverem protokol TLS / SSL.
Použití protokolu HTTPS oproti protokolu HTTP má mnoho výhod, například:
- Všechna data jsou šifrována v obou směrech. V důsledku toho nelze citlivé informace přečíst, jsou-li zachyceny.Google Chrome a všechny ostatní populární prohlížeče označí váš web jako bezpečný.HTTPS vám umožňuje používat protokol HTTP / 2, což výrazně zlepšuje výkon webu.Google dává přednost webům HTTPS. Pokud se vaše stránky budou zobrazovat prostřednictvím protokolu HTTPS, budou mít lepší hodnocení.
Upřednostňovanou metodou přesměrování HTTP na HTTPS v Nginx je konfigurace samostatného bloku serveru pro každou verzi webu. Měli byste se vyhnout přesměrování provozu pomocí direktivy if, protože to může způsobit nepředvídatelné chování serveru.
Přesměrovat HTTP na HTTPS na web
Chcete-li přesměrovat jeden web na HTTPS, otevřete konfigurační soubor domény a proveďte následující změny:
server { listen 80; listen:80; server_name linuxize.com www.linuxize.com; return 301 https://linuxize.com$request_uri; }
Rozdělme si kód po řádku:
-
listen 80
- Blok serveru bude poslouchat příchozí připojení na portu 80 pro zadanou doménu.server_name linuxize.com www.linuxize.com
- Určuje názvy domén bloku serveru. Nezapomeňte jej nahradit názvem vaší domény.return 301
- Přesměrujte provoz na verzi HTTPS webu. Proměnná$request_uri
je úplný URI požadavku včetně argumentů.
Obvykle budete také chtít přesměrovat HTTPS www verzi webu na non-www nebo naopak. Doporučeným způsobem přesměrování je vytvoření samostatného bloku serveru pro verze www i non-www.
Chcete-li například přesměrovat požadavky HTTPS www na jiné než www, použijte následující konfiguraci:
server { listen 80; listen:80; server_name linuxize.com www.linuxize.com; return 301 https://linuxize.com$request_uri; } server { listen 443 ssl http2; server_name www.linuxize.com; #… other code return 301 https://linuxize.com$request_uri; } server { listen 443 ssl http2; server_name linuxize.com; #… other code }
Přesměrovat všechny stránky na HTTPS
Pokud jsou všechny weby hostované na serveru nakonfigurovány pro použití HTTPS a nechcete pro každý web vytvořit samostatný blok serveru HTTP, můžete vytvořit jediný blok serveru HTTP typu catch-all. Tento blok přesměruje všechny požadavky HTTP na příslušné bloky
Chcete-li vytvořit jediný blok HTTP typu catch-all, který přesměruje návštěvníky na verzi HTTPS webu, otevřete konfigurační soubor Nginx a proveďte následující změny:
server { listen 80 default_server; listen:80 default_server; server_name _; return 301 https://$host$request_uri; }
Pojďme analyzovat kód po řádku:
-
listen 80 default_server
- Nastaví tento blok serveru jako výchozí (catch-all) blok pro všechny nesrovnatelné domény.server_name _
-_
je neplatný název domény, který nikdy neodpovídá skutečnému názvu domény.return 301
- Přesměrujte provoz na odpovídající blok serveru HTTPS se stavovým kódem 301 (trvale přesunuto). Proměnná$host
obsahuje doménové jméno požadavku.
Pokud například návštěvník otevře v prohlížeči
http://example.com/page2
, Nginx přesměruje požadavek na
https://example.com/page2
.
Pokud je to možné, raději vytvořte přesměrování na základě domény místo globálního přesměrování HTTP na
Závěr
Jakmile máte na svém webu nainstalován certifikát SSL, měli byste přesměrovat provoz HTTP na
V Nginxu je upřednostňovaným způsobem přesměrování HTTP na HTTPS vytvoření samostatných serverových bloků a provedení přesměrování 301.
nginxJaké jsou běžné chyby stavu HTTP?

Stavový kód HTTPS je krátká poznámka odeslaná serverem, který je zobrazen na webu , když klient iniciuje požadavek na server. Vysvětlení všech běžných kódových zpráv HTTP Status Error a jejich významu.
Rozdíl mezi protokolem HTTP a protokolem HTTPS

Vývoj HTTP, fungování HTTPS a rozdíl mezi HTTP a HTTPS v jednoduchých termínech. Byly diskutovány protokoly HTTP Vs HTTPS nebo Hypertext Transfer Protocol přes Secure Socket Layer.
Přechod na bezpečnější standard https začíná zabíjením http

Aby byl HTTPS de facto standardem internetu, musí zemřít starý standard HTTP. Tento krok začal, ale zdaleka není dokončen.