Apache mod_spdy Kurulumu: Debian 7 VPS Üzerinde Hız ve Güvenlik Optimizasyonu
Web teknolojileri sürekli olarak gelişmekte ve kullanıcı deneyimini iyileştirmek için yeni protokoller ve standartlar ortaya çıkmaktadır. Bu gelişmelerden biri de Google tarafından başlatılan ve web performansını artırmayı hedefleyen SPDY protokolüdür. SPDY, HTTP/1.1’in bazı sınırlamalarını aşarak daha hızlı, daha güvenli ve daha verimli bir web deneyimi sunmak üzere tasarlanmıştır. Bu makalede, Apache web sunucusunun SPDY desteği sağlayan mod_spdy modülünü Debian 7 (Wheezy) tabanlı bir Sanal Özel Sunucu (VPS) üzerine nasıl kuracağınızı adım adım açıklayacağız.
Debian 7, güncel bir işletim sistemi olmasa da, belirli projeler veya eski sistemlerin sürdürülebilirliği için hala kullanılıyor olabilir. Bu nedenle, bu makale özellikle Debian 7 ortamında mod_spdy kurulumu yapmak isteyen sistem yöneticileri ve geliştiriciler için hazırlanmıştır. SPDY’nin yerini HTTP/2’nin aldığını ve mod_spdy projesinin aktif geliştirilmesinin durduğunu belirtmek önemlidir. Ancak, bu kılavuz, belirli bir ihtiyaca yönelik olarak SPDY’yi Debian 7 üzerinde yapılandırma sürecini detaylandıracaktır.
SPDY Protokolü ve Evrimi
SPDY (okunuşu “speedy”), Google tarafından geliştirilen deneysel bir ağ protokolü olup, web sitelerinin yüklenme süresini azaltmak ve web güvenliğini artırmak için tasarlanmıştır. SPDY, temel olarak HTTP/1.1’in TCP bağlantısı başına tek bir istek işleme sınırlamasını aşarak, aynı bağlantı üzerinden birden fazla eşzamanlı isteği (multiplexing) göndermeye olanak tanır. Bu, özellikle modern web sitelerinin çok sayıda kaynak (CSS, JavaScript, resimler vb.) yüklemesi gerektiğinde önemli bir performans artışı sağlar.
HTTP/1.1 Sınırlamaları ve SPDY’nin Çözümleri
HTTP/1.1, her bir kaynak için ayrı bir TCP bağlantısı kurma eğilimindedir veya Keep-Alive mekanizmasıyla bağlantıları yeniden kullanmaya çalışır. Ancak, aynı anda birden fazla isteğin gönderilmesi genellikle engellenir (head-of-line blocking). SPDY bu sorunu aşağıdaki özelliklerle ele almıştır:
* Çoklama (Multiplexing): Tek bir TCP bağlantısı üzerinden birden fazla eşzamanlı HTTP isteği ve yanıtı gönderilmesine izin verir. Bu, bağlantı kurulumu ve kesilmesi maliyetini azaltır.
* Önceliklendirme (Prioritization): İstemciler, hangi kaynakların daha acil olduğunu sunucuya bildirebilir, böylece kritik kaynaklar daha önce gönderilir.
* Başlık Sıkıştırma (Header Compression): HTTP başlıkları genellikle tekrar eden bilgiler içerir. SPDY, zlib tabanlı sıkıştırma kullanarak başlık boyutunu önemli ölçüde azaltır, bu da bant genişliğinden tasarruf sağlar.
* Sunucu İtme (Server Push): Sunucu, bir istemcinin talep etmesini beklemeden, gelecekte ihtiyaç duyacağı kaynakları proaktif olarak gönderebilir. Örneğin, bir HTML sayfasını isteyen bir istemciye, sunucu aynı anda sayfanın CSS ve JavaScript dosyalarını da gönderebilir.
* TLS Zorunluluğu: SPDY, güvenlik nedeniyle her zaman TLS (Transport Layer Security) üzerinden çalışır. Bu, tüm SPDY trafiğinin şifrelenmesini ve güvenli olmasını sağlar.
SPDY’den HTTP/2’ye Geçiş
SPDY, web protokollerinin evriminde kritik bir adımdı ve Google’ın bu protokolü açık kaynak olarak sunması, IETF’nin HTTP/2 standardını geliştirmesi için güçlü bir temel oluşturdu. HTTP/2, SPDY’nin birçok temel prensibini ve özelliğini benimsemiş ve geliştirmiştir. Sonuç olarak, SPDY protokolünün geliştirilmesi durdurulmuş ve yerini tamamen HTTP/2’ye bırakmıştır. Bu nedenle, mod_spdy projesi de aktif olarak geliştirilmemektedir. Ancak, Debian 7 gibi eski sistemlerde HTTP/2 desteği (genellikle mod_http2 ile) varsayılan olarak bulunmayabilir veya kurulumu daha karmaşık olabilir. Bu durumda, mod_spdy geçici veya belirli bir uyumluluk gereksinimi için bir çözüm sunabilir.
Ön Koşullar ve İlk Kurulum Adımları
mod_spdy kurulumuna başlamadan önce, VPS’nizin belirli gereksinimleri karşıladığından ve temel bileşenlerin kurulu olduğundan emin olmanız gerekir.
Debian 7 “Wheezy” Spesifikleri
Bu kılavuz, Debian 7 “Wheezy” işletim sistemi için hazırlanmıştır. Debian 7’nin artık resmi güvenlik güncellemeleri almadığını ve bu nedenle üretim ortamlarında dikkatli kullanılması gerektiğini unutmayın. Daha modern Debian sürümlerinde (Debian 9 ve üzeri) HTTP/2 desteği için mod_http2 kullanılması önerilir.
VPS Erişimi ve Yetkiler
* SSH Erişimi: VPS’nize SSH (Secure Shell) üzerinden erişiminiz olmalıdır.
* Root veya Sudo Yetkileri: Kurulum ve yapılandırma işlemleri için root kullanıcısı olarak oturum açmış olmanız veya sudo yetkilerine sahip bir kullanıcı hesabınızın olması gerekmektedir.
Apache Web Sunucusunun Kurulumu
mod_spdy, Apache web sunucusu için bir modül olduğundan, öncelikle Apache’nin kurulu olması gerekir.
1. Sistem Paket Listesini Güncelleme:
sudo apt-get update
Bu komut, sistemdeki paket listesini güncelleyerek en son paket bilgilerini almanızı sağlar.
2. Apache’nin Kurulu Olup Olmadığını Kontrol Etme:
apache2 -v
Eğer Apache kuruluysa, sürüm bilgilerini gösteren bir çıktı alırsınız. Örneğin: Server version: Apache/2.2.22 (Debian).
3. Apache’yi Kurma (Gerekliyse):
Eğer Apache kurulu değilse veya yukarıdaki komut hata verirse, aşağıdaki komutla kurabilirsiniz:
sudo apt-get install apache2
4. Apache Servisini Başlatma ve Etkinleştirme:
sudo service apache2 start
sudo update-rc.d apache2 defaults
Bu komutlar Apache’yi başlatır ve sistem başlangıcında otomatik olarak başlamasını sağlar.
Gerekli Derleme Araçları ve Kütüphaneler
mod_spdy modülünü kaynak koddan derleyeceğimiz için, gerekli derleme araçlarına ve geliştirme kütüphanelerine ihtiyacımız olacak.
sudo apt-get install build-essential libapr1-dev libaprutil1-dev zlib1g-dev libssl-dev libjansson-dev git
* build-essential: C/C++ derleme için temel araçları (gcc, g++, make vb.) içerir.
* libapr1-dev, libaprutil1-dev: Apache Portable Runtime (APR) kütüphanelerinin geliştirme dosyalarıdır. Apache modülleri için gereklidir.
* zlib1g-dev: Zlib sıkıştırma kütüphanesinin geliştirme dosyalarıdır. SPDY’nin başlık sıkıştırma özelliği için kullanılır.
* libssl-dev: OpenSSL kütüphanesinin geliştirme dosyalarıdır. SPDY’nin TLS zorunluluğu nedeniyle gereklidir.
* libjansson-dev: Jansson, C için bir JSON kütüphanesidir. mod_spdy bazı dahili yapılandırmalar için JSON kullanabilir.
* git: mod_spdy kaynak kodunu GitHub’dan indirmek için gereklidir.
Mod_SSL’in Etkin Olduğundan Emin Olma
SPDY, her zaman TLS üzerinden çalıştığı için Apache’nin mod_ssl modülünün etkin olması zorunludur.
sudo a2enmod ssl
Bu komut, mod_ssl modülünü etkinleştirir. Genellikle Apache kurulumuyla birlikte gelir ve varsayılan olarak etkin olabilir. Eğer zaten etkinse, bir uyarı mesajı alırsınız.
mod_spdy Kaynak Kodunu Edinme ve Derleme
Gerekli tüm ön koşulları sağladıktan sonra, mod_spdy kaynak kodunu indirip derleme işlemine geçebiliriz.
Kaynak Kodu Edinme
mod_spdy projesi Google tarafından geliştirilmiş ve GitHub üzerinde yayımlanmıştır. Projenin aktif geliştirilmesi durmuş olsa da, kaynak koduna hala erişilebilir.
1. Derleme Dizini Oluşturma ve Giriş:
Genellikle kaynak koddan derleme işlemleri için /usr/local/src dizini kullanılır.
sudo mkdir -p /usr/local/src/mod_spdy
cd /usr/local/src/mod_spdy
2. mod_spdy Kaynak Kodunu Klonlama:
Git kullanarak mod_spdy deposunu klonlayın.
sudo git clone https://github.com/google/mod_spdy.git .
. (nokta) kullanarak mevcut dizine klonlama işlemini gerçekleştiririz.
3. Gerekli Alt Modülleri Güncelleme:
mod_spdy projesi, bazı bağımlılıkları Git alt modülleri olarak içerir. Bunları da indirmeniz gerekir.
sudo git submodule update --init --recursive
Bu adım, projenin tüm bağımlılıklarının doğru bir şekilde indirilmesini sağlar.
Derleme Süreci
Kaynak kodu indirdikten sonra, mod_spdy modülünü Apache için derleyebiliriz.
1. Yapılandırma (Configure):
./configure betiği, sisteminizdeki Apache kurulumunu ve kütüphanelerini tespit ederek derleme ayarlarını yapar.
sudo ./configure --with-apxs=/usr/bin/apxs --with-apr=/usr/bin/apr-1-config --with-apu=/usr/bin/apu-1-config
* --with-apxs=/usr/bin/apxs: apxs (APache eXtenSion tool) aracının yolunu belirtir. Bu araç, Apache modüllerini derlemek ve kurmak için kullanılır. Debian’da genellikle /usr/bin/apxs konumundadır.
* --with-apr=/usr/bin/apr-1-config: APR (Apache Portable Runtime) yapılandırma aracının yolunu belirtir.
* --with-apu=/usr/bin/apu-1-config: APU (Apache Portable Utility) yapılandırma aracının yolunu belirtir.
Bu komutun başarıyla tamamlandığından emin olun. Herhangi bir hata alırsanız, eksik kütüphaneleri veya yanlış yolları kontrol edin.
2. Derleme (Make):
Yapılandırma başarılı olduktan sonra, kaynak kodu derlemek için make komutunu çalıştırın.
sudo make
Bu işlem, sisteminizin işlem gücüne bağlı olarak birkaç dakika sürebilir. Derleme sırasında herhangi bir hata oluşursa, bağımlılıkları veya derleme ortamını tekrar kontrol etmeniz gerekebilir.
3. Kurulum (Make Install):
Derleme tamamlandığında, mod_spdy modülünü Apache’nin modül dizinine kopyalamak ve gerekli yapılandırma dosyalarını oluşturmak için make install komutunu kullanın.
sudo make install
Bu komut genellikle spdy.load ve spdy.conf dosyalarını Apache’nin mods-available dizinine kopyalar ve mod_spdy.so dosyasını modules dizinine yerleştirir.
Apache’yi mod_spdy İçin Yapılandırma
mod_spdy modülünü derleyip kurduktan sonra, Apache’yi bu modülü kullanacak şekilde yapılandırmamız gerekir.
Modülü Etkinleştirme
make install komutu genellikle spdy.load ve spdy.conf dosyalarını mods-available dizinine yerleştirdiği için, a2enmod komutuyla modülü etkinleştirebiliriz.
sudo a2enmod spdy
Bu komut, mods-available dizinindeki spdy.load ve spdy.conf dosyalarına mods-enabled dizininden sembolik bağlantılar oluşturur.
SSL Sertifikası ve Sanal Host Yapılandırması
SPDY’nin TLS üzerinden çalışması zorunlu olduğundan, sunucunuz için geçerli bir SSL/TLS sertifikasına sahip olmanız ve Apache’de SSL’i yapılandırmanız gerekir. Eğer henüz bir SSL sertifikanız yoksa, Let’s Encrypt gibi ücretsiz bir sertifika sağlayıcıdan veya ticari bir Sertifika Yetkilisinden (CA) temin edebilirsiniz.
1. SSL Sertifikalarını Yükleme:
Sertifika dosyalarınızı (örneğin your_domain.crt, your_domain.key, your_domain_chain.crt) sunucunuza güvenli bir şekilde yükleyin. Genellikle /etc/ssl/certs/ ve /etc/ssl/private/ dizinleri kullanılır. Özel anahtar (.key) dosyasının izinlerinin çok kısıtlı olduğundan (örn. 600) ve sadece root tarafından okunabilir olduğundan emin olun.
2. Sanal Host Yapılandırmasını Düzenleme:
SPDY’yi etkinleştirmek istediğiniz sanal host dosyasını düzenleyin. Genellikle bu dosya /etc/apache2/sites-available/your_domain.conf veya /etc/apache2/sites-available/default-ssl gibi bir yolda bulunur.
sudo nano /etc/apache2/sites-available/default-ssl
İlgili bloğunu bulun ve aşağıdaki gibi düzenleyin:
ServerName your_domain.com
DocumentRoot /var/www/html
# SSL/TLS Yapılandırması
SSLEngine On
SSLCertificateFile /etc/ssl/certs/your_domain.crt
SSLCertificateKeyFile /etc/ssl/private/your_domain.key
# Eğer bir CA zinciri dosyanız varsa, aşağıdaki satırı ekleyin
SSLCertificateChainFile /etc/ssl/certs/your_domain_chain.crt
# SPDY Protokolünü Etkinleştirme
# Tarayıcıya sunulacak protokollerin sırası önemlidir.
# SPDY/3.1 tercih edilir, ardından HTTP/1.1
Protocols spdy/3.1 http/1.1
# Eğer daha geniş SPDY desteği istiyorsanız:
# Protocols SPDY/3.1 SPDY/3 HTTP/1.1
# Güvenlik İçin Diğer SSL Ayarları (Önerilir)
# Yalnızca güvenli TLS protokollerini kullanın
SSLProtocol All -SSLv2 -SSLv3
# Güçlü şifreleme süitlerini tercih edin
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
# Sunucunun şifreleme süiti sırasını zorunlu kıl
SSLHonorCipherOrder on
# HTTP Strict Transport Security (HSTS) - Tarayıcıları sadece HTTPS kullanmaya zorlar
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
# X-Content-Type-Options: MIME türü koklamasını engeller
Header always set X-Content-Type-Options "nosniff"
# X-Frame-Options: Clickjacking saldırılarını önler
Header always set X-Frame-Options "DENY"
# X-XSS-Protection: XSS filtrelerini etkinleştirir
Header always set X-XSS-Protection "1; mode=block"
# Log dosyaları
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# Diğer sanal host ayarları...
* ServerName: Alan adınızı buraya yazın.
* SSLCertificateFile, SSLCertificateKeyFile, SSLCertificateChainFile: Sertifika dosyalarınızın doğru yollarını belirtin.
* Protocols spdy/3.1 http/1.1: Bu direktif, Apache’ye SPDY/3.1’i tercih etmesini ve eğer istemci SPDY desteklemiyorsa HTTP/1.1’e geri dönmesini söyler. mod_spdy tarafından sağlanan ana direktiftir.
* Diğer SSL ayarları, sunucunuzun güvenliğini artırmak için şiddetle tavsiye edilir.
3. Sanal Hostu Etkinleştirme (Gerekliyse):
Eğer yeni bir sanal host dosyası oluşturduysanız veya varsayılan SSL sanal hostu etkin değilse, etkinleştirmeniz gerekir:
sudo a2ensite default-ssl
veya kendi dosyanız için:
sudo a2ensite your_domain.conf
Genel mod_spdy Yapılandırması (İsteğe Bağlı)
mod_spdy‘nin genel ayarları /etc/apache2/mods-available/spdy.conf dosyasında bulunabilir. Bu dosyayı düzenleyerek veya sanal host içerisinde override ederek SPDY’nin davranışını daha da ince ayarlayabilirsiniz.
* SPDYMaxStreams: Tek bir SPDY bağlantısı üzerinden aynı anda kaç tane akışa izin verileceğini belirler. Varsayılan değer genellikle 100’dür.
* SPDYWindowSize: Akış başına alıcı penceresi boyutunu belirler. Daha büyük bir pencere boyutu, yüksek bant genişliğine sahip bağlantılarda performansı artırabilir.
* SPDYPushMaxResources: Sunucu itme (server push) ile aynı anda kaç kaynağın gönderilebileceğini sınırlar.
Bu ayarlar, özellikle yüksek trafikli siteler için performans optimizasyonu yaparken önemlidir. Ancak, çoğu durumda varsayılan değerler yeterli olacaktır.
Kurulumu Test Etme
Apache yapılandırmasını tamamladıktan sonra, her şeyin doğru çalıştığından emin olmak için test etmemiz gerekir.
1. Apache Yapılandırmasını Kontrol Etme:
Apache’yi yeniden başlatmadan önce yapılandırma dosyalarında herhangi bir hata olup olmadığını kontrol etmek iyi bir uygulamadır.
sudo apache2ctl configtest
# veya
sudo apachectl -t
Eğer çıktı Syntax OK ise, yapılandırmanızda bir sözdizimi hatası yoktur. Herhangi bir hata mesajı alırsanız, ilgili yapılandırma dosyasını kontrol edin ve hatayı düzeltin.
2. Apache Servisini Yeniden Başlatma:
Yapılandırma hatasız ise, Apache servisini yeniden başlatın. Bu, yeni mod_spdy ayarlarının ve modülünün yüklenmesini sağlar.
sudo service apache2 restart
Eğer Apache yeniden başlatılamazsa, genellikle /var/log/apache2/error.log dosyasında daha fazla bilgi bulabilirsiniz.
3. SPDY Desteğini Doğrulama:
SPDY’nin etkin olup olmadığını kontrol etmek için birkaç yöntem vardır:
* Tarayıcı Eklentileri: Google Chrome için “SPDY Indicator” veya Firefox için “HTTP/2 and SPDY indicator” gibi tarayıcı eklentileri, ziyaret ettiğiniz sitenin hangi protokolü kullandığını (HTTP/1.1, SPDY, HTTP/2) gösterir.
* Tarayıcı Geliştirici Araçları:
* Google Chrome: Bir web sayfasını açın, F12 tuşuna basarak Geliştirici Araçlarını açın. “Network” (Ağ) sekmesine gidin. Sayfayı yenileyin. Kaynaklar listesinde “Protocol” (Protokol) sütununu etkinleştirin (sütun başlıklarına sağ tıklayıp seçebilirsiniz). Eğer spdy/3.1 görüyorsanız, SPDY başarıyla çalışıyor demektir.
* Mozilla Firefox: F12 tuşuna basarak Geliştirici Araçlarını açın. “Network” (Ağ) sekmesine gidin. Sayfayı yenileyin. Bir isteğe tıklayın ve “Headers” (Başlıklar) sekmesine bakın. “X-Firefox-Spdy” başlığını veya protokol bilgisini kontrol edin.
* Online SPDY/HTTP/2 Test Araçları: Bazı web siteleri, alan adınızı girerek sunucunuzun hangi protokolleri desteklediğini test etmenize olanak tanır. Örneğin, KeyCDN’nin HTTP/2 test aracı gibi araçlar kullanılabilir, ancak SPDY’ye özel araçlar bulmak artık daha zor olabilir.
* curl Komutu (Sınırlı): Modern curl sürümleri genellikle HTTP/2’yi tercih eder. Ancak, belirli bir SPDY sürümünü zorlayarak deneme yapabilirsiniz, ancak bu yöntem her zaman kesin sonuç vermeyebilir. Basit bir kontrol için:
curl -I --spdy https://your_domain.com
X-Firefox-Spdy gibi başlıkları arayabilirsiniz, ancak bu başlıklar istemci tarafından gönderilen bir bilgi olabilir. En güvenilir yöntem tarayıcı geliştirici araçlarıdır.
Gelişmiş Yapılandırma ve En İyi Uygulamalar
mod_spdy kurulumunuzu tamamladıktan sonra, performansı ve güvenliği daha da artırmak için bazı gelişmiş yapılandırmaları ve en iyi uygulamaları göz önünde bulundurabilirsiniz.
SPDY Push (Sunucu İtme)
SPDY’nin en güçlü özelliklerinden biri olan sunucu itme, istemcinin talep etmesini beklemeden sunucunun kaynakları proaktif olarak göndermesine olanak tanır. Bu, özellikle bir HTML sayfasının hemen ardından yüklenecek CSS, JavaScript veya resimler için çok faydalıdır.
Sunucu itmeyi etkinleştirmek için sanal host yapılandırmanıza SPDYPush direktifini ekleyebilirsiniz:
# ... diğer yapılandırmalar ...
# SPDY Push için örnekler
SPDYPush /css/style.css
SPDYPush /js/main.js
SPDYPush /images/logo.png
# ...
* Dikkat: Sunucu itmeyi aşırı kullanmaktan kaçının. Eğer bir istemci zaten sahip olduğu bir kaynağı iterseniz veya istemcinin asla ihtiyaç duymayacağı bir kaynağı iterseniz, bant genişliği israfına neden olabilirsiniz. Akıllıca kullanıldığında büyük performans artışları sağlayabilir.
Güvenlik Hususları
SPDY’nin TLS zorunluluğu zaten iyi bir güvenlik seviyesi sağlar, ancak genel Apache ve SSL/TLS yapılandırmanızda ek güvenlik önlemleri almanız önemlidir:
* Güncel SSL/TLS Kütüphaneleri: Debian 7’nin güncel olmadığını ve OpenSSL sürümünün eski olabileceğini unutmayın. Bu, bilinen güvenlik açıklarına karşı savunmasız kalmanıza neden olabilir. Mümkünse, daha güncel bir işletim sistemine geçiş yapın.
* Güçlü Şifreleme Süitleri: Yukarıdaki örnekte belirtildiği gibi, yalnızca güçlü ve modern şifreleme süitlerini kullanın (SSLCipherSuite direktifi). Eski ve zayıf şifrelemeleri devre dışı bırakın.
* HSTS (HTTP Strict Transport Security): HSTS, tarayıcıları sitenizle her zaman HTTPS üzerinden iletişim kurmaya zorlar, ortadaki adam (Man-in-the-Middle) saldırılarını önlemeye yardımcı olur. Yukarıdaki yapılandırma örneğinde Strict-Transport-Security başlığı ile bu ayar mevcuttur.
* Diğer Güvenlik Başlıkları: X-Content-Type-Options, X-Frame-Options, X-XSS-Protection gibi başlıklar, tarayıcı tabanlı saldırılara karşı ek koruma sağlar.
Performans Ayarları
* SPDYMaxStreams ve SPDYWindowSize: Bu değerleri sunucunuzun kaynaklarına ve beklenen trafik hacmine göre ayarlayarak performansı optimize edebilirsiniz. Yüksek trafikli sitelerde bu değerlerin artırılması faydalı olabilir, ancak aynı zamanda sunucu kaynaklarını (bellek, CPU) daha fazla tüketebilir.
* Apache Keep-Alive Ayarları: Apache’nin KeepAlive ve MaxKeepAliveRequests gibi ayarları, HTTP/1.1 trafiği için önemlidir. SPDY kendi bağlantı yönetimini yaptığı için SPDY trafiğini doğrudan etkilemez, ancak SPDY’ye düşen istemciler için hala önemlidir.
* Önbellekleme (Caching): Apache’nin mod_cache modülünü veya Varnish gibi bir ters proxy önbelleğini kullanarak statik içeriklerinizi önbelleğe alın. Bu, sunucu üzerindeki yükü azaltır ve yanıt sürelerini hızlandırır.
HTTP/2’ye Geçişe Hazırlık
Tekrar vurgulamak gerekir ki, SPDY, HTTP/2’nin öncüsüdür ve artık aktif olarak geliştirilmemektedir. Eğer uzun vadeli bir çözüm arıyorsanız ve modern web standartlarına uyum sağlamak istiyorsanız, HTTP/2’ye geçiş yapmayı planlamalısınız.
* İşletim Sistemi Yükseltmesi: HTTP/2 desteği (Apache için mod_http2 modülü aracılığıyla) genellikle Debian 9 (Stretch) ve üzeri sürümlerde daha kolay ve resmi olarak desteklenir. Debian 7’den daha yeni bir sürüme geçiş yapmak, HTTP/2’ye geçiş için en önemli adımdır.
* Apache Sürümü: mod_http2 genellikle Apache 2.4.x sürümleriyle birlikte gelir. Debian 7, Apache 2.2.x kullanır, bu da mod_http2 için yeterli değildir.
Bu nedenle, mod_spdy kurulumu, Debian 7 gibi eski sistemlerde belirli bir ihtiyacı karşılasa da, geleceğe yönelik olarak bir yükseltme planı yapmanız şiddetle tavsiye edilir.
Sık Karşılaşılan Sorunlar ve Giderme
Kurulum ve yapılandırma sırasında bazı sorunlarla karşılaşabilirsiniz. İşte bazı yaygın sorunlar ve olası çözümleri:
Derleme Hataları
* Eksik Kütüphaneler/Araçlar: configure veya make komutları sırasında hata alırsanız, genellikle eksik bir kütüphane veya geliştirme aracı nedeniyle olur. Hata mesajını dikkatlice okuyun ve eksik paketi sudo apt-get install -dev komutuyla kurun. Örneğin, libjansson-dev eksik olabilir.
* Yanlış Yollar: configure komutundaki --with-apxs, --with-apr, --with-apu yollarının doğru olduğundan emin olun. Debian 7’de /usr/bin/ altında olmaları gerekir.
Apache Başlamıyor veya SPDY Çalışmıyor
* Yapılandırma Hatası: Apache’yi yeniden başlattıktan sonra başlamazsa, ilk olarak sudo apache2ctl configtest komutunu çalıştırın. Hata mesajını düzeltin.
* Hata Günlükleri: Apache’nin hata günlüklerini (/var/log/apache2/error.log) kontrol edin. Burada mod_spdy veya SSL ile ilgili ayrıntılı hata mesajları bulabilirsiniz. Örneğin, sertifika dosyası yolları yanlış olabilir veya izin sorunları olabilir.
* SSL Sertifikası Sorunları: SPDY’nin çalışması için geçerli ve doğru yapılandırılmış bir SSL sertifikası zorunludur. Sertifika dosyalarının doğru yollarda olduğundan, özel anahtarın doğru izinlere sahip olduğundan ve süresinin dolmadığından emin olun.
* Protocols Direktifi: Sanal host yapılandırmasındaki Protocols direktifinin doğru yazıldığından ve spdy/3.1 veya SPDY/3 gibi geçerli bir SPDY sürümünü içerdiğinden emin olun. Ayrıca, http/1.1‘in de listede olduğundan emin olun, böylece istemciler SPDY’yi desteklemiyorsa geri düşebilirler.
* mod_ssl Etkin Değil: mod_ssl‘in etkin olduğundan emin olun (sudo a2enmod ssl).
* Güvenlik Duvarı: VPS’nizin güvenlik duvarının (örneğin iptables veya ufw) 443 numaralı bağlantı noktasından gelen trafiğe izin verdiğinden emin olun.
Performans Sorunları
* Aşırı Sunucu İtme: Eğer SPDYPush özelliğini kullanıyorsanız ve performans düşüşü yaşıyorsanız, itilen kaynak sayısını azaltmayı veya itme stratejinizi gözden geçirmeyi deneyin. Her zaman gerekli olmayan kaynakları itmek bant genişliği israfına neden olabilir.
* SPDYMaxStreams ve SPDYWindowSize: Bu değerleri varsayılan olarak bırakın ve yalnızca performans sorunları yaşadığınızda ve detaylı analizler sonucunda değiştirmeyi düşünün. Yanlış değerler performansı olumsuz etkileyebilir.
Sonuç
Bu makalede, Apache mod_spdy modülünü Debian 7 (Wheezy) tabanlı bir VPS üzerine nasıl kuracağınızı ve yapılandıracağınızı ayrıntılı olarak ele aldık. SPDY protokolü, bir zamanlar web performansını artırmak için önemli bir adımdı ve HTTP/2’nin temelini oluşturdu. Debian 7 gibi eski bir işletim sistemi üzerinde çalışmanız gerektiğinde, mod_spdy size modern tarayıcılarla daha hızlı ve güvenli bir iletişim sağlamak için bir çözüm sunabilir.
Kurulum süreci, gerekli derleme araçlarının ve kütüphanelerin hazırlanması, mod_spdy kaynak kodunun indirilip derlenmesi ve Apache sanal host yapılandırmasının güncellenmesi adımlarını içerir. Özellikle SSL/TLS sertifikalarının doğru yapılandırılması, SPDY’nin güvenli doğası gereği kritik öneme sahiptir.
Ancak, SPDY’nin yerini HTTP/2’nin aldığını ve mod_spdy projesinin aktif geliştirilmesinin durduğunu unutmamak önemlidir. Uzun vadeli sürdürülebilirlik ve en güncel performans/güvenlik özelliklerinden yararlanmak için, sisteminizi daha yeni bir Debian sürümüne (Debian 9 veya üzeri) yükseltmeyi ve HTTP/2 desteği için Apache’nin mod_http2 modülünü kullanmayı şiddetle tavsiye ederiz. Bu, web sitenizin gelecekteki web standartlarına uyum sağlamasını ve en iyi performansı sunmasını sağlayacaktır.
Bu kılavuz, belirli bir ihtiyaca yönelik olarak mod_spdy kurulumunu başarıyla tamamlamanıza yardımcı olmayı amaçlamıştır. Umarım bu detaylı adımlar, Debian 7 VPS’nizde Apache’nin hızını ve güvenliğini artırmanıza yardımcı olur.
