Android

Przekieruj http na https w nginx

Как получить и настроить LetsEncrypt SSL сертификат для сайта?

Как получить и настроить LetsEncrypt SSL сертификат для сайта?

Spisu treści:

Anonim

W tym przewodniku wyjaśnimy, jak przekierować ruch HTTP do HTTPS w Nginx.

Nginx wymawia „silnik x” to darmowy, otwarty serwer HTTP o wysokiej wydajności i zwrotny serwer proxy odpowiedzialny za obsługę niektórych największych witryn w Internecie.

W przeciwieństwie do HTTP, gdzie żądania i odpowiedzi są wysyłane i zwracane w postaci zwykłego tekstu, HTTPS używa TLS / SSL do szyfrowania komunikacji między klientem a serwerem.

Istnieje wiele korzyści z używania HTTPS przez HTTP, takich jak:

  • Wszystkie dane są szyfrowane w obu kierunkach. W rezultacie przechwycenie poufnych informacji nie jest możliwe, jeśli zostaną przechwycone. Google Chrome i wszystkie inne popularne przeglądarki oznaczą Twoją witrynę jako bezpieczną. HTTPS pozwala na użycie protokołu HTTP / 2, co znacznie poprawia wydajność witryny. Google faworyzuje witryny HTTPS. Twoja witryna będzie miała wyższą pozycję w rankingu, jeśli będzie wyświetlana przez

Preferowaną metodą przekierowania HTTP na HTTPS w Nginx jest skonfigurowanie osobnego bloku serwera dla każdej wersji witryny. Należy unikać przekierowywania ruchu za pomocą dyrektywy if, ponieważ może to spowodować nieprzewidziane zachowanie serwera.

Przekieruj HTTP na HTTPS na stronę

Aby przekierować pojedynczą witrynę do HTTPS, otwórz plik konfiguracji domeny i wprowadź następujące zmiany:

server { listen 80; listen:80; server_name linuxize.com www.linuxize.com; return 301 https://linuxize.com$request_uri; }

Podzielmy kod wiersz po wierszu:

  • listen 80 - Blok serwera będzie nasłuchiwał połączeń przychodzących na porcie 80 dla określonej domeny. server_name linuxize.com www.linuxize.com - Określa nazwy domenowe bloku serwera. Pamiętaj, aby zastąpić go nazwą swojej domeny. return 301 - Przekieruj ruch do wersji HTTPS witryny. Zmienna $request_uri jest pełnym oryginalnym identyfikatorem URI żądania wraz z argumentami.

Zwykle będziesz również chciał przekierować wersję strony HTTPS na stronę inną niż www lub odwrotnie. Zalecanym sposobem wykonania przekierowania jest utworzenie osobnego bloku serwera dla wersji www i innych niż www.

Na przykład, aby przekierować żądania HTTPS www na stronę inną niż www, należy użyć następującej konfiguracji:

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 }

Przekieruj wszystkie witryny do HTTPS

Jeśli wszystkie witryny hostowane na serwerze są skonfigurowane do korzystania z HTTPS, a nie chcesz tworzyć osobnego bloku serwera HTTP dla każdej witryny, możesz utworzyć pojedynczy blok serwera HTTP typu catch-all. Ten blok przekieruje wszystkie żądania HTTP do odpowiednich bloków

Aby utworzyć pojedynczy blok HTTP typu catch-all, który przekieruje odwiedzających do wersji HTTPS witryny, otwórz plik konfiguracyjny Nginx i wprowadź następujące zmiany:

server { listen 80 default_server; listen:80 default_server; server_name _; return 301 https://$host$request_uri; }

Przeanalizujmy kod linia po linii:

  • listen 80 default_server - Ustawia ten blok serwera jako domyślny (catch-all) dla wszystkich niedopasowanych domen. server_name _ - _ jest niepoprawną nazwą domeny, która nigdy nie pasuje do żadnej prawdziwej nazwy domeny. return 301 - Przekieruj ruch do odpowiedniego bloku serwera HTTPS z kodem stanu 301 (Przeniesiony na stałe). Zmienna $host zawiera nazwę domeny żądania.

Na przykład, jeśli odwiedzający otworzy http://example.com/page2 w przeglądarce, Nginx przekieruje żądanie na https://example.com/page2 .

Jeśli to możliwe, preferuj tworzenie przekierowań dla poszczególnych domen zamiast globalnego przekierowania HTTP na

Wniosek

Po zainstalowaniu certyfikatu SSL w witrynie należy przekierować ruch HTTP na

W Nginx preferowanym sposobem przekierowania HTTP na HTTPS jest utworzenie osobnych bloków serwera i wykonanie przekierowania 301.

nginx