W tym artykule dowiemy się, jak przekierować ruch internetowy z HTTP do bezpiecznego HTTPS w Nginx.
Odpowiedzi i żądania są zwracane w postaci zwykłego tekstu w HTTP, natomiast HTTPS używa SSL/TLS do szyfrowania komunikacji między systemem klient-serwer. Dlatego z wielu powodów HTTPS jest używany przez HTTP, które są wymienione poniżej:
- Wszystkie dane między klientem a serwerem w obu kierunkach są szyfrowane. Jednak nikt nie może uzyskać dostępu do poufnych informacji, jeśli zostaną przechwycone.
- Gdy korzystasz z protokołu HTTPS, Google Chrome i inne przeglądarki uznają Twoją domenę witryny za bezpieczną.
- Wersja HTTPS poprawia wydajność Twojej strony internetowej przy użyciu protokołu HTTP/2.
- Jeśli obsługujesz domenę swojej witryny przez HTTPS, witryna będzie miała lepszą pozycję w Google, ponieważ faworyzuje wszystkie witryny zabezpieczone HTTPS.
Preferowane jest przekierowywanie ruchu HTTP do HTTPS w Nginx w osobnym bloku serwera dla każdej wersji witryny. Zaleca się również unikanie przekierowywania ruchu w kierunku „jeśli”, co może powodować nietypowe zachowanie serwera.
Przekieruj cały ruch z HTTP na HTTPS
Dodaj następujące zmiany do pliku konfiguracyjnego Nginx, aby przekierować cały ruch z wersji HTTP na HTTPS:
serwersłuchaj 80 default_server;
Nazwa serwera _;
zwróć 301 https://$host$request_uri;
Poniżej opracowaliśmy każdy z powyższych terminów:
Listen 80 default_server - to zasygnalizuje systemowi, że przechwytuje cały ruch HTTP na porcie 80.
Nazwa_serwera _ - jest to domena, która będzie pasować do dowolnej nazwy hosta.
Zwróć 301 https://$host$request_uri - to informuje wyszukiwarki, które przekierowują je na stałe. Określa, że zmienna $host przechowuje nazwy domen.
Po zmianie ustawień konfiguracyjnych musisz ponownie załadować usługi Nginx w swoim systemie. Załaduj ponownie usługi Nginx za pomocą następującego polecenia:
$ sudo systemctl przeładuj nginxPrzekieruj wersję HTTP do HTTPS dla określonej domeny w Nginx
Po zainstalowaniu certyfikatu SSL w swojej domenie będziesz mieć dwie opcje blokowania serwera dla tej domeny. Jeden blok dotyczy wersji HTTP nasłuchującej na porcie 80, a druga wersja to HTTPS na porcie 443. Aby jednak przekierować pojedynczą domenę witryny z HTTP na HTTPS, musisz otworzyć konfigurację Nginx. Możesz znaleźć ten plik konfiguracyjny w katalogu /etc/nginx/sites-available. W każdym razie, jeśli nie znalazłeś tego pliku, możesz go wyszukać za pomocą /etc/nginx/nginx.conf, /usr/local/nginx/conf lub /usr/local/etc/nginx, a następnie wykonaj następujące zmiany w tym pliku:
serwerposłuchaj 80;
nazwa_serwera nazwa-domeny.com www.Nazwa domeny.pl;
return 301 https://nazwa-domeny.com$request_uri;
Rozumiemy powyższy kod linia po linii.
Listen 80 - używając portu 80 serwer będzie nasłuchiwał wszystkich połączeń przychodzących z określonej domeny.
Nazwa_serwera nazwa_domeny.com www.Nazwa domeny.com - określa nazwy domen. Zastąp go nazwą domeny witryny, którą chcesz przekierować.
Zwróć 301 https://nazwa-domeny.com$request_uri - przenosi ruch do wersji HTTPS strony. Zmienna $request_uri jest używana dla pełnego oryginalnego identyfikatora URI żądania, w którym zawarte są również argumenty.
Korzystając z następującej metody, możesz przekierować ruch do wersji HTTPS z www na wersję bez www. Zaleca się utworzenie przekierowania w osobnym bloku serwera zarówno dla wersji bez www, jak i www.
Wyjaśnijmy na przykładzie. Jeśli chcesz przekierować żądania www HTTPS do wersji bez www, postępuj zgodnie z następującą konfiguracją:
serwerposłuchaj 80;
nazwa_serwera nazwa-domeny.com www.Nazwa domeny.pl;
return 301 https://nazwa-domeny.com$request_uri;
serwer
słuchaj 443 ssl http2;
nazwa_serwera www.Nazwa domeny.pl;
#… inny kod
return 301 https://nazwa-domeny.com$request_uri;
serwer
słuchaj 443 ssl http2;
nazwa_serwera nazwa-domeny.pl;
#… inny kod
Zastąp nazwę domeny nazwą swojej domeny, np. www.linuxhint.com.
Wniosek
Omówiliśmy, jak przekierować ruch z wersji HTTP do HTTPS na serwerze Nginx. Zmieniając ustawienie pliku konfiguracyjnego Nginx, możesz łatwo przekierować ruch do HTTPS dla określonej domeny lub przekierować wszystkie. Ta metoda, o której wspomnieliśmy w tym artykule, może pomóc w zwiększeniu bezpieczeństwa Twojej witryny poprzez wprowadzenie jakichkolwiek zmian w doświadczeniu użytkownika.