Nginx Http2 Aktif Etme

Merhaba,

Bu yazımızda sizlere nginx üzerinde http2 yi nasıl aktif edebileceğinizden bahsedeceğiz.

HTTP/2.0 protokolü, HTTP/1.1 ana protokolü üzerinden SPDY(hız) esas alınarak geliştirilmiş bir protokoldür.

Bu nedenle HTTP/2.0 protokolü HTTP/1.1 ile yüksek seviyede uyumluluğu sürdürmektedir.

HTTP/2.0 protokolünün amacı:

– HTTP header compression (HTTP başlıklarının veri sıkıştırması.)
– Server push (Sunucu itme teknolojileri.)
– Multiplexing (Çoğullama. Yani sunucuya gönderilebilecek request sayısını arttırmak.)
– Head-of-line blocking (HTTP/1.1’deki satır başı engelleme) sorununu çözmek.
– Encryption: HTTP/1.1 üzerinde HTTP/2.0 için TLS protokolü şifreleme ile daha etkili kullanım.
– Masaüstü web tarayıcıları, mobil web tarayıcıları, web uygulama API’leri, çeşitli ölçekteki web sunucuları, güvenlik duvarları ve içerik dağıtım ağları(CDN) gibi yaygın kullanımları desteklemek.

Amaçlanan değişiklikler, mevcut(HTTP/1.1) web uygulamalarının çalışma şeklinde herhangi bir değişimi gerektirmez ama yeni uygulamalar(HTTP/2.0) artırılmış hız avantajını kullanabilirler.

Nginx 1.9.5 ve üzeri sürümler için HTTP/2.0 protokolünü desteklemektedir.

Centos üzerinde nginx için HTTP/2.0 kullanımı

1.Adım: Nginx için repo dosyası oluşturuyoruz.
touch /etc/yum.repos.d/nginx.repo

2.Adım: Oluşturduğumuz nginx repo dosyasını düzenleme modunda açıyoruz.
nano /etc/yum.repos.d/nginx.repo

3.Adım: Aşağıdaki parametreleri dosyamıza ekleyip CTRL+X komutunu verip Y tuşuna basarak kaydedip çıkıyoruz.

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

4.Adım: Nginx kurulum komutunu veriyoruz ve HTTP/2.0 protokol desteğiyle nginx kurulumunu gerçekleştiriyoruz.
yum install nginx

5.Adım: Sistemde hali hazırda kullandığınız bir nginx var ise aşağıdaki komut ile yükseltme işlemini yapıyoruz.
yum clean all
yum update nginx

Debian üzerinde nginx için HTTP/2.0 kullanımı

1.Adım: Sistemin kaynak listesine HTTP/2.0 gerekli nginx kaynak parametrelerini ekliyoruz.
echo "deb http://nginx.org/packages/mainline/debian/ `lsb_release -cs` nginx" >> /etc/apt/sources.list
echo "deb-src http://nginx.org/packages/mainline/debian/ `lsb_release -cs` nginx" >> /etc/apt/sources.list

2.Adım: Sırasıyla aşağıdaki komutları çalıştırıp HTTP/2.0 destekli nginx kurulumunu gerçekleştiriyoruz.
curl http://nginx.org/keys/nginx_signing.key | apt-key add -
apt-get update
apt-get install nginx

Ubuntu üzerinde nginx için HTTP/2.0 kullanımı

1.Adım: Sistemin kaynak listesine HTTP/2.0 gerekli nginx kaynak parametrelerini ekliyoruz.
echo "deb http://nginx.org/packages/mainline/ubuntu/ `lsb_release -cs` nginx" >> /etc/apt/sources.list
echo "deb-src http://nginx.org/packages/mainline/ubuntu/ `lsb_release -cs` nginx" >> /etc/apt/sources.list

2.Adım: Sırasıyla aşağıdaki komutları çalıştırıp HTTP/2.0 destekli nginx kurulumunu gerçekleştiriyoruz.
curl http://nginx.org/keys/nginx_signing.key | apt-key add -
sudo apt-get update
sudo apt-get install nginx

Kurulumları gerçekleştirdikten sonra konfigürasyon ayarlarına geçmeden önce tüm linux sürümleri için nginx versiyon sorgulaması yapıyoruz.
Bunu yapmamamızın sebebi nginx versiyonunun 1.9.5 ve daha üst bir versiyona ihtiyaç duymasıdır.
Nginx versiyonunuz eski sürümlerden birisi ise HTTP/2.0 protokolünü desteklemeyecektir.

Nginx versiyon sorgulama için aşağıdaki komutu uyguluyoruz.
nginx -v

Örnek Sonuç çıktısı: nginx version: nginx/1.9.7

Artık konfigürasyon ayarlarımızı yapıp HTTP/2.0 protokolü aktif hale getirebiliriz.
HTTP/2.0 aktif etmek için nginx.conf dosyasındaki aşağıdaki kırmızı olan parametreyi yeşil olan parametre gibi değiştirip nginx restart ediyoruz.

443 ssl
443 ssl http2

Bir sonraki yazımızda görüşmek üzere…