Web performansı ve SEO açısından günümüzde protokol katmanlarının önemi giderek artıyor. Özellikle HTTP/2, birden çok isteği tek TCP bağlantısı üzerinden işleyebilme, başlık sıkıştırma, önceliklendirme gibi avantajlarıyla HTTP/1.1’e göre büyük bir ilerleme sunuyor. (Apache HTTP Server)
Eğer Apache sunucunuz varsa ve sitelerinizin hızını artırmak, kullanıcı deneyimini iyileştirmek istiyorsanız HTTP/2’yi aktif etmek çok doğru bir adım olur.
Ön Koşullar
HTTP/2 aktif etmeden önce aşağıdaki koşulları sağladığınızdan emin olun:
- Apache sürümü 2.4.x olmalı. (Akamai)
- Sunucuda TLS/SSL kurulmuş olmalı (çoğu tarayıcı HTTP/2’yi yalnızca HTTPS üzerinden destekler) (Akamai)
- Apache modülü
mod_http2yüklenmiş ve etkin olmalı. (Apache HTTP Server) - Apache’nin MPM (Multi-Processing Module) olarak prefork yerine event veya worker kullanıyor olması tercih edilir; prefork bazı HTTP/2 özellikleriyle uyumsuz olabilir. (Stack Overflow)
Adım Adım Kurulum
1. Modülü Yükleme / Etkinleştirme
Debian/Ubuntu için:
sudo apt update
sudo apt install apache2
sudo a2enmod http2
sudo a2enmod ssl
Red Hat / CentOS için (Yum/DNF):
sudo yum install mod_http2
Ardından Apache konfigürasyon dosyasında modülün yüklendiğini doğrula. (Apache HTTP Server)
2. MPM Ayarlarını Kontrol Etme
Prefork modülünün etkin olup olmadığını kontrol edin:
apachectl -M | grep mpm
Eğer mpm_prefork_module aktifse bu HTTP/2 için ideal değil. Prefork’ı devre dışı bırakıp mpm_event veya mpm_worker moduna geçmelisiniz. (Gist)
Örneğin Ubuntu’da:
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo systemctl restart apache2
3. VirtualHost veya Global Konfigürasyona Protocols Direktifi Ekleme
SSL kullandığınız VirtualHost içinde (örneğin /etc/apache2/sites-available/example.com-ssl.conf) şu satırı ekleyin:
<IfModule http2_module>
Protocols h2 h2c http/1.1
</IfModule>
Buradaki h2 = TLS üzerinden HTTP/2, h2c = şifrelenmemiş HTTP/2 (çoğu durumda kullanılmaz), http/1.1 = fallback. (Akamai)
Eğer tüm sitelere uygulamak istersen, global olarak /etc/apache2/conf-available/http2.conf dosyasında da aynı ayarı yapabilirsiniz. (Gist)
4. Apache’yi Yeniden Başlatma ve Test Etme
sudo apachectl configtest
sudo systemctl restart apache2
Test için:
curl -I --http2 https://yourdomain.com
Yanıtın başlangıcında HTTP/2 200 gibi bir ifade görmelisiniz. (InMotion Hosting)
Ayrıca tarayıcıda Geliştirici Konsolu → Network sekmesinde “Protocol” sütununda “h2” yazdığını kontrol edin.
Ek Ayarlar & Optimizasyon
- TLS sürümlerini TLS 1.2 / TLS 1.3 olarak sınırlandırın, HTTP/2 için güçlü şifreleme gerekir. (Apache HTTP Server)
- H2 Push (Server Push) gibi özellikleri aktif edebilirsiniz (örneğin
H2Push ongibi) (Gist) - CDN veya Proxy kullanıyorsanız, onların da HTTP/2 desteğini ve ayarlarını kontrol edin.
- Sunucu kaynaklarını izleyin: HTTP/2’de aynı TCP bağlantısında çoklu istek olacağı için MPM ve Limit ayarlarını uygun yapılandırın.
Karşılaşılabilecek Sorunlar ve Çözümler
- Tarayıcıda hâlâ
http/1.1görünüyorsa: SSL sertifikası yok veya ALPN desteği eksik. - MPM prefork kullanılıyorsa HTTP/2 sağlam çalışmayabilir. Prefork yerine event modülüne geçin.
- Eğer bir Reverse Proxy/CDN var ise HTTP/2 client-sunucu arasında değil, CDN-sunucu arasında bile aktif olmayabilir — kontrol edin.
- Bazı hosting panellerinde (cPanel/WHM gibi) “Enable HTTP/2” seçeneği bulunmaktadır — GUI üzerinden açılabilir. (InMotion Hosting)
Apache üzerinde HTTP/2’yi aktif etmek, backlinkler, kullanıcı deneyimi ve site hızı bakımından özellikle önemli bir adım.
Doğru modüller yüklenmiş, MPM uygun seçilmiş ve Protocols direktifi doğru eklenmişse, modern tarayıcılarda “h2” protokolüyle hızlı içerik sunumu başlamış olur.
Bugün bir kaç adımda bu yükseltmeyi yaparak web sitelerinizi modern standartlara uygun hale getirebilirsiniz.