Wyszukiwanie w witrynie

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.