Nginx'te HTTP/2.0 Nasıl Etkinleştirilir


HTTP/2, HTTP protokolü için en son standarttır ve HTTP/1.1'in devamıdır. Genel olarak web geliştiricilerine ve kullanıcılara sağladığı faydalar nedeniyle giderek daha popüler hale geliyor. HTTP/1.1'in tüm temel özelliklerini destekleyerek HTTP semantiği için optimize edilmiş bir aktarım sağlar ancak birçok açıdan daha verimli olmayı amaçlar.

HTTP/2'nin yanı sıra, bir web sitesini/uygulamayı optimize etmek için size daha fazla olanak sağlayan pek çok özellik vardır. Gerçek çoğullama ve eşzamanlılık, daha iyi başlık sıkıştırma (ikili kodlama), daha iyi önceliklendirme, daha iyi akış kontrol mekanizmaları ve bir sunucunun istemciye yanıt göndermesini sağlayan "sunucu itme" adı verilen yeni bir etkileşim modu sunar. . HTTP/2'nin Google'ın deneysel SPDY protokolünü temel aldığını belirtmeden geçemeyeceğiz.

Bu nedenle, HTTP/2'nin öncelikli odak noktası genel web sayfası yükleme süresini azaltarak performansı artırmaktır. Ayrıca HTTP/2 ile SSL/TLS şifrelemesinin zorunlu olması nedeniyle ağ ve sunucu kaynak kullanımının yanı sıra güvenliğe de odaklanır.

Bu makalede, Linux sunucularında HTTP/2 desteğiyle Nginx'i nasıl etkinleştireceğinizi öğreneceksiniz.

Önkoşullar:

  • NGINX 1.9.5 sürümünün veya üzerinin, ngx_http_v2_module modülüyle oluşturulmuş, çalışan bir kurulumu.
  • Sitenizin SSL/TLS sertifikası kullandığından emin olun, eğer sertifikanız yoksa Let’s Encrypt’ten alabilir veya kendinden imzalı bir sertifika kullanabilirsiniz.

Aşağıdaki kılavuzlarda açıklandığı gibi NGINX'i yükleyebilir veya bir LEMP yığınıyla dağıtabilirsiniz:

  • CentOS 8'e Nginx Nasıl Kurulur
  • CentOS 8'e LEMP Sunucusu Nasıl Kurulur
  • RHEL 8'e NGINX, MySQL/MariaDB ve PHP Nasıl Kurulur
  • Ubuntu 20.04'te PhpMyAdmin ile LEMP Yığını Nasıl Kurulur
  • Debian 10'da Nginx'i Sunucu Bloklarıyla (Sanal Ana Bilgisayarlar) Kurun
  • Linux'ta Nginx'i HTTP Yük Dengeleyici Olarak Kullanma

NGINX'te HTTP/2.0 Nasıl Etkinleştirilir

NGINX yüklüyse aşağıdaki komutu çalıştırarak bunun ngx_http_v2_module modülüyle oluşturulduğunu doğrulayın.

strings /usr/sbin/nginx | grep _module | grep -v configure| sort | grep ngx_http_v2_module

HTTPS yapılandırılmış olarak NGINX tarafından sunulan bir web siteniz/uygulamanız olduğunda, web sitenizin sanal sunucu bloğunu (veya sanal ana bilgisayar) dosyasını açın. düzenleme.

vi /etc/nginx/conf.d/example.com.conf                    [On CentOS/RHEL]
sudo nano /etc/nginx/sites-available/example.com.conf    [On Ubuntu/Debian]

Aşağıdaki ekran görüntüsünde gösterildiği gibi tüm listen yönergelerine http2 parametresini ekleyerek HTTP/2 desteğini etkinleştirebilirsiniz.

listen 443 ssl http2;

Örnek sunucu bloğu konfigürasyonu aşağıdakine benzer.


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    
}

Değişiklikleri dosyaya kaydedin ve kapatın.

Ardından NGINX'in yapılandırma söz dizimini kontrol edin, sorun yoksa Nginx hizmetini yeniden başlatın.

nginx -t
systemctl restart nginx

Ardından, web sitenizin HTTP/2 üzerinden sunulup sunulmadığını doğrulamak için bir web tarayıcısı açın.

http://www.example.com

HTTP üstbilgilerine erişmek için görüntülenen web sayfasını sağ tıklayın, geliştirici araçlarını açmak için seçenekler listesinden İncele'yi seçin, ardından sekmesini tıklayın ve yeniden yükleyin sayfa.

Sitenizin kullandığı protokolü görmek için Protokoller'in altına bakın (Protokoller başlığını göremiyorsanız, başlıklardan herhangi birini sağ tıklayın, örneğin Ad, ardından <'yi işaretleyin. Bir başlık olarak görüntülemek için listeden Strong>Protokol'ü seçin).

Siteniz HTTP/1.1 üzerinde çalışıyorsa, Protokol altında, aşağıdaki ekran görüntüsünde gösterildiği gibi http/1.1'i göreceksiniz.

HTTP/2 üzerinde çalışıyorsa, Protokol altında, aşağıdaki ekran görüntüsünde gösterildiği gibi h2'yi göreceksiniz. Doğrudan web sunucusundan sunulan en son içeriği görüntülemek için tarayıcı önbelleğini devre dışı bırakmak isteyebilirsiniz.

Bu kadar! Daha fazla bilgi için ngx_http_v2_module modülü belgelerine bakın. Aşağıdaki geri bildirim formunu kullanarak soru sormaktan çekinmeyin.