Nginx to serwer internetowy typu open source, który podbił serca wielu administratorów i programistów dzięki swojej wydajnej wydajności, niskiemu zużyciu pamięci i potężnemu wsparciu dla różnych protokołów. Dziś omówimy konfigurację obsługi HTTP/2 w Nginx.

HTTP/2 to ewolucja protokołu HTTP, która poprawia transfer danych między serwerem a użytkownikiem. Zastępuje on protokół HTTP 1.1, który miał limit liczby jednoczesnych połączeń, co spowalniało ładowanie ciężkich stron. HTTP/2 rozwiązuje ten problem, umożliwiając równoległe ładowanie danych i kompresję nagłówków HTTP.

Dlaczego przejście na protokół HTTP/2 jest ważne?

Przejście na protokół HTTP/2 nie tylko przyspiesz a ładowanie witryny, ale także zwiększa bezpieczeństwo transmisji danych. Wszystkie nowoczesne przeglądarki wymagają, aby witryny korzystały z protokołu HTTPS w celu obsługi HTTP/2, co sprawia, że transmisja danych między serwerem a odwiedzającymi jest bezpieczniejsza.

Proces przejścia na protokół HTTP/2

Zanim zaczniesz konfigurować HTTP/2 , musisz mieć serwer z Ubuntu 18.04 i zainstalowanym Nginx. Ponadto nazwa domeny musi być wskazana na serwerze, a certyfikat SSL (na przykład Let’s Encrypt) musi być zainstalowany dla tej domeny.

1. Konfiguracja serwera

Otwórz plik konfiguracyjny domeny:

vim /etc/nginx/sites-available/your_domain

Dodanie obsługi HTTP/2 dla połączeń IPv6 i IPv4:

listen [::]:443 ssl hp2 ipv6only=on;
listen 443 ssl http2;

Zapisz zmiany i sprawdź składnię:

nginx -t

2. Zwiększone bezpieczeństwo

Aby poprawić bezpieczeństwo, należy wykluczyć niezabezpieczone szyfry. W pliku konfiguracyjnym domeny zmień opcję ssl_ciphers:

ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

Sprawdź składnię i uruchom ponownie serwer:

nginx -t
systemctl restart nginx.service

3. Dodawanie HTTP Strict Transport Security (HSTS)

Aby uzyskać jeszcze większe bezpieczeństwo, dodaj nagłówek HTTP Strict Transport Security do pliku konfiguracyjnego Nginx. Nagłówek ten zapewnia, że przeglądarki będą używać tylko połączeń HTTPS.

W pliku konfiguracyjnym Nginx:

add_header Strict-Transport-Security "max-age=15768000; includeSubDomains" always;

Sprawdź składnię i uruchom ponownie serwer.

4. Sprawdzenie poprawności działania protokołu HTTP/2.

Protokół HTTP/2 można przetestować za pomocą polecenia curl:

Odpowiedź serwera musi zawierać HTTP/2.

Możesz także użyć Google Chrome i narzędzi deweloperskich, aby sprawdzić obsługę HTTP/2.

Teraz Twoja witryna jest gotowa do pracy z HTTP/2 – szybszą i bezpieczniejszą wersją protokołu HTTP 🚀.

Pamiętaj, aby zawsze aktualizować i zabezpieczać swój serwer. Powodzenia!!!!

Czytaj także:

Pytania i odpowiedzi

Jakie są korzyści z używania protokołu HTTP/2 zamiast HTTP/1.1?

Protokół HTTP/2 oferuje szereg korzyści, w tym lepszą wydajność dzięki funkcjom takim jak multipleksowanie i kompresja nagłówków, zwiększone bezpieczeństwo dzięki wbudowanemu szyfrowaniu oraz lepszą obsługę nowoczesnych technologii internetowych.

Czy muszę włączyć SSL/TLS podczas konfigurowania obsługi HTTP/2?

Tak, włączenie SSL/TLS jest niezbędne podczas konfigurowania obsługi HTTP/2, aby zapewnić bezpieczną komunikację między klientami a serwerem. Szyfrowanie SSL/TLS chroni wrażliwe dane przed przechwyceniem i nieautoryzowanym dostępem.

Czy mogę skonfigurować obsługę HTTP/2 na starszych wersjach Ubuntu?

Chociaż technicznie możliwe jest skonfigurowanie obsługi HTTP/2 na starszych wersjach Ubuntu, takich jak 16.04, zaleca się korzystanie z Ubuntu 18.04 lub nowszego w celu uzyskania optymalnej kompatybilności i wsparcia.

Jak sprawdzić, czy protokół HTTP/2 jest włączony na moim serwerze Nginx?

Możesz sprawdzić, czy protokół HTTP/2 jest włączony na serwerze Nginx za pomocą narzędzi takich jak curl lub usług testowania HTTP/2 online. Alternatywnie, sprawdzenie dzienników serwera Nginx może dać ci wyobrażenie o wersji protokołu używanej przez połączenia klienckie.

Czy włączenie obsługi HTTP/2 wymaga dodatkowych zasobów serwera?

Włączenie obsługi HTTP/2 może wymagać nieco więcej zasobów serwera niż HTTP/1.1 ze względu na większą złożoność protokołu. Jednak korzyści związane z wydajnością zwykle przewyższają minimalne wymagania dotyczące zasobów.

Czy po skonfigurowaniu obsługi HTTP/2 mogę w razie potrzeby powrócić do HTTP/1.1?

Tak, w razie potrzeby można powrócić do protokołu HTTP/1.1, zmieniając ustawienia konfiguracyjne Nginx. Zaleca się jednak dokładne przetestowanie kompatybilności i wydajności witryny przed wprowadzeniem jakichkolwiek zmian.

O autorze

Andrii Kostashchuk

Andrii ma doświadczenie w programowaniu w różnych językach dla różnych platform i systemów. Spędził ponad 8 lat w sferze internetowej, pracując z różnymi systemami CMS, takimi jak: Opencart, Drupal, Joomla i oczywiście najpopularniejszy system zarządzania treścią WordPress.

Zobacz wszystkie artykuły