HTTP/2, tek bağlantı üzerinde çoklu istek (multiplexing), başlık sıkıştırma ve daha verimli kaynak yükleme sunar. Tarayıcılar HTTP/2'yi yalnızca TLS üzerinden kullanır; yani geçerli bir SSL sertifikası ön koşuldur ve protokol TLS el sıkışmasında ALPN uzantısıyla seçilir.
Ön koşullar
- Çalışan HTTPS (geçerli sertifika ve zincir).
- HTTP/2 destekleyen sunucu sürümü: Nginx (http_v2 modülüyle), Apache 2.4.17+ (mod_http2).
- ALPN destekleyen, modern bir OpenSSL sürümü.
Nginx
# Nginx 1.25.1 ve sonrası
server {
listen 443 ssl;
http2 on;
server_name alanadi.com;
}
# Daha eski sürümlerde
server {
listen 443 ssl http2;
}
Apache
a2enmod http2
<VirtualHost *:443>
Protocols h2 http/1.1
</VirtualHost>
Apache'de PHP'yi mod_php ile çalıştırıyorsanız HTTP/2 için MPM event ve PHP-FPM kombinasyonu önerilir; mod_php, prefork MPM gerektirdiği için HTTP/2 ile uyumsuzdur.
Doğrulama
curl -sI --http2 https://alanadi.com | head -n 1
openssl s_client -alpn h2 -connect alanadi.com:443 </dev/null 2>/dev/null | grep ALPN
İlk komutta "HTTP/2 200" görmelisiniz; ikincisinde "ALPN protocol: h2" çıkmalı. Tarayıcı geliştirici araçlarında Network sekmesinde Protocol sütunu "h2" gösterir.
İpuçları
- Domain sharding ve dosya birleştirme alışkanlıklarını yeniden değerlendirin; HTTP/2'de gereksiz olabilirler.
- TLS 1.2+ ve iyi cipher seçenekleri kullanın; HTTP/2 bazı zayıf şifreleri yasaklar.
- Yapılandırmadan önce yedek alın ve
nginx -t/apachectl configtestile test edin.
Sertifikanız ve zincirinizin doğru olduğundan emin olmak için SSL Checker, sertifika ihtiyacı için SSL sertifikaları sayfamıza bakabilirsiniz.