Jak włączyć HTTP/2.0 w Nginx
HTTP/2 to najnowszy standard protokołu HTTP, następca protokołu HTTP/1.1. Staje się coraz bardziej popularny ze względu na korzyści, jakie przynosi twórcom stron internetowych i ogólnie użytkownikom. Zapewnia zoptymalizowany transport dla semantyki HTTP, obsługując wszystkie podstawowe funkcje HTTP/1.1, ale ma na celu być bardziej wydajnym na wiele sposobów.
Oprócz protokołu HTTP/2 istnieje wiele funkcji, które dają więcej możliwości optymalizacji witryny/aplikacji internetowej. Oferuje prawdziwe multipleksowanie i współbieżność, lepszą kompresję nagłówka (kodowanie binarne), lepszą priorytetyzację, lepsze mechanizmy kontroli przepływu i nowy tryb interakcji zwany „server push”, który umożliwia serwerowi przesyłanie odpowiedzi do klienta . Nie wspominając, że HTTP/2 opiera się na eksperymentalnym protokole SPDY firmy Google.
Dlatego głównym celem HTTP/2 jest skrócenie całkowitego czasu ładowania strony internetowej, a tym samym poprawa wydajności. Koncentruje się także na wykorzystaniu zasobów sieciowych i serwerowych, a także na bezpieczeństwie, ponieważ w przypadku protokołu HTTP/2 szyfrowanie SSL/TLS jest obowiązkowe.
W tym artykule dowiesz się, jak włączyć Nginx z obsługą HTTP/2 na serwerach Linux.
Warunki wstępne:
- Działająca instalacja NGINX w wersji 1.9.5 lub wyższej, zbudowana przy użyciu modułu ngx_http_v2_module.
- Upewnij się, że Twoja witryna korzysta z certyfikatu SSL/TLS. Jeśli go nie posiadasz, możesz uzyskać go od Let’s Encrypt lub skorzystać z certyfikatu z podpisem własnym.
Możesz zainstalować NGINX lub wdrożyć go ze stosem LEMP, jak opisano w poniższych przewodnikach:
- Jak zainstalować Nginx na CentOS 8
- Jak zainstalować serwer LEMP na CentOS 8
- Jak zainstalować NGINX, MySQL/MariaDB i PHP na RHEL 8
- Jak zainstalować stos LEMP z PhpMyAdmin w Ubuntu 20.04
- Zainstaluj Nginx z blokami serwerów (hostami wirtualnymi) na Debianie 10
- Jak używać Nginx jako modułu równoważenia obciążenia HTTP w systemie Linux
Jak włączyć HTTP/2.0 w NGINX
Jeśli masz zainstalowany NGINX, sprawdź, czy został zbudowany przy użyciu modułu ngx_http_v2_module
, uruchamiając następujące polecenie.
strings /usr/sbin/nginx | grep _module | grep -v configure| sort | grep ngx_http_v2_module
Gdy już będziesz mieć witrynę/aplikację internetową obsługiwaną przez NGINX ze skonfigurowanym HTTPS, otwórz plik bloku serwera wirtualnego (lub hosta wirtualnego) swojej witryny dla redagowanie.
vi /etc/nginx/conf.d/example.com.conf [On CentOS/RHEL]
sudo nano /etc/nginx/sites-available/example.com.conf [On Ubuntu/Debian]
Możesz włączyć obsługę protokołu HTTP/2, po prostu dodając parametr http2
do wszystkich dyrektyw listen
, jak pokazano na poniższym zrzucie ekranu.
listen 443 ssl http2;
Przykładowa konfiguracja bloku serwera wygląda jak poniżej.
server {
server_name example.com www.example.com;
access_log /var/log/nginx/example.com_access.log;
error_log /var/log/nginx/example.com_error.log;
listen [::]:443 ssl ipv6only=on http2; # managed by Certbot
listen 443 ssl http2; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
Zapisz zmiany w pliku i zamknij go.
Następnie sprawdź składnię konfiguracji NGINX, jeśli jest OK, zrestartuj usługę Nginx.
nginx -t
systemctl restart nginx
Następnie otwórz przeglądarkę internetową, aby sprawdzić, czy Twoja witryna jest obsługiwana przez HTTP/2.
http://www.example.com
Aby uzyskać dostęp do nagłówków HTTP, kliknij prawym przyciskiem myszy wyświetloną stronę internetową, wybierz Sprawdź z listy opcji, aby otworzyć narzędzia programistyczne, a następnie kliknij kartę Sieć i załaduj ponownie Strona.
Sprawdź w obszarze Protokoły, aby zobaczyć ten, którego używa Twoja witryna (jeśli nie widzisz nagłówka Protokoły, kliknij prawym przyciskiem myszy dowolny nagłówek, np. Nazwa, a następnie zaznacz opcję Protokół z listy, aby wyświetlić go jako nagłówek).
Jeśli Twoja witryna działa w oparciu o HTTP/1.1, w sekcji Protokół zobaczysz http/1.1, jak pokazano na poniższym zrzucie ekranu.
Jeśli działa na HTTP/2, w sekcji Protokół zobaczysz h2
, jak pokazano na poniższym zrzucie ekranu. Możesz wyłączyć pamięć podręczną przeglądarki, aby przeglądać najnowsze treści dostarczane bezpośrednio z serwera internetowego.
To wszystko! Więcej informacji można znaleźć w dokumentacji modułu ngx_http_v2_module. Nie wahaj się zadawać pytań za pośrednictwem poniższego formularza opinii.