Apache CDN entegrasyonu, web sitenizin hızını ve performansını önemli ölçüde artırabilir. CDN’ler, statik içeriği coğrafi olarak dağılmış sunucular üzerinden kullanıcıya en yakın noktadan sağlar. Bu sayede, yükleme süreleri kısalır ve Apache sunucusunun üzerindeki yük azalır. Bu makalede, Apache sunucusu ile CDN entegrasyonunu adım adım ve kod uygulamaları ile detaylandıracağız.
Apachenedir? dünyanın en popüler web sunucusudur ve çoğu web sitesinin alt yapısında kullanılır. Yüksek esneklik, geniş eklenti desteği ve güvenilirliği ile öne çıkar. Ancak yoğun trafik altında tek başına yeterli olmayabilir. Bu noktada bir CDN devreye girer.
Content Delivery Network (CDN), web sitenizin statik içeriklerini (resimler, videolar, CSS, JavaScript) dünya genelindeki sunucularda önbelleğe alarak kullanıcılara en yakın lokasyondan sunan bir teknolojidir. Böylece içerikler daha hızlı yüklenir ve sunucu yükü hafifletilir.
Apache sunucunuzun CDN ile düzgün çalışabilmesi için bazı yapılandırma değişiklikleri yapmanız gerekebilir. Özellikle gerçek IP adreslerinin doğru şekilde loglanmasını sağlamak ve optimize edilmiş bir performans almak için bazı modülleri etkinleştirmeniz gerekir.
Bir CDN üzerinden gelen trafik, proxy sunucularından geleceği için ziyaretçilerin gerçek IP adreslerini almak için mod_remoteip kullanmanız gerekiyor.
1: mod_remoteip Modülünü Etkinleştirin: Apache’nin mod_remoteip modülü, CDN tarafından sağlanan IP adreslerinin doğru bir şekilde loglanmasını sağlar.
sudo a2enmod remoteip
2: remoteip.conf Dosyasını Yapılandırın: /etc/apache2/conf-available/remoteip.conf dosyasını oluşturun veya düzenleyin ve aşağıdaki içeriği ekleyin:
RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 103.21.244.0/22
RemoteIPTrustedProxy 103.22.200.0/22
RemoteIPTrustedProxy 103.31.4.0/22
RemoteIPTrustedProxy 141.101.64.0/18
RemoteIPTrustedProxy 108.162.192.0/18
RemoteIPTrustedProxy 190.93.240.0/20
RemoteIPTrustedProxy 188.114.96.0/20
RemoteIPTrustedProxy 197.234.240.0/22
RemoteIPTrustedProxy 198.41.128.0/17
RemoteIPTrustedProxy 162.158.0.0/15
RemoteIPTrustedProxy 104.16.0.0/12
RemoteIPTrustedProxy 172.64.0.0/13
3: Apache’yi Yeniden Başlatın: Bu ayarlardan sonra Apache’yi yeniden başlatın:
sudo systemctl restart apache2Bu yapılandırma, Cloudflare proxy sunucuları üzerinden gelen isteklerin gerçek kullanıcı IP adreslerini loglamanızı sağlar.
CDN ile Apache entegrasyonunda, önbellekleme ayarları kritik öneme sahiptir. Apache’nin statik içerikleri doğrudan Cloudflare’a yönlendirmesi ve gereksiz dinamik içeriklerin CDN üzerinden geçmemesi için bazı cache ayarlarını yapılandırmalısınız.
Cache-Control Header’larını Yapılandırın: Apache’nin statik dosyalar için doğru önbellekleme başlıklarını gönderdiğinden emin olmalısınız.
1: Apache Yapılandırmasına Giriş: Apache sunucu yapılandırma dosyanızı açın (/etc/apache2/sites-available/000-default.conf):
sudo nano /etc/apache2/sites-available/000-default.conf
2: Statik İçerikler İçin Cache Kontrolü Ekleyin: Aşağıdaki kodu <VirtualHost> bloğuna ekleyin:
<IfModule mod_headers.c>
# CSS ve JavaScript dosyaları için 1 hafta önbellekleme
<FilesMatch "\.(css|js)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
# Resimler için 1 ay önbellekleme
<FilesMatch "\.(jpg|jpeg|png|gif|ico)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
# HTML için anlık yenileme
<FilesMatch "\.(html|htm)$">
Header set Cache-Control "no-store, no-cache, must-revalidate"
</FilesMatch>
</IfModule>
3: Apache’yi Yeniden Başlatın: Ayarları yaptıktan sonra Apache’yi yeniden başlatın:
sudo systemctl restart apache2
Cloudflare ve Apache entegrasyonunda SSL ayarlarının doğru yapılması önemlidir. Apache’de SSL sertifikası kurulu değilse, Cloudflare’ın Flexible SSL seçeneği kullanılabilir. Ancak güvenlik açısından Full SSL veya Full SSL (Strict) tercih edilmelidir.
1: Apache’de SSL Sertifikasını Kurun: Apache’ye SSL sertifikası kurulu değilse, aşağıdaki komutları kullanarak Let’s Encrypt SSL sertifikasını kullanarak Apache SSL Sertifikası kurulumuAMP işlemlerini tamamlayabilirsiniz.
sudo apt update
sudo apt install certbot python3-certbot-apache
Ardından SSL sertifikasını kurun:
sudo certbot --apache
2: Cloudflare’de Full SSL Modunu Etkinleştirin: Cloudflare hesabınıza giriş yapın, SSL/TLS ayarlarına gidin ve Full SSL veya Full SSL (Strict) modunu etkinleştirin.
Cloudflare veya başka bir CDN ile çalışırken gelen isteklerin doğru şekilde loglandığından emin olmak için Apache log formatını düzenlemeniz gerekir.
1: Log Formatını Ayarlayın: Apache’nin log formatını değiştirmek için /etc/apache2/apache2.conf dosyasını düzenleyin ve aşağıdaki satırı ekleyin:
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" cloudflare
CustomLog ${APACHE_LOG_DIR}/access.log cloudflare
2: Apache’yi Yeniden Başlatın: Log formatı değişikliklerinden sonra Apache’yi yeniden başlatın:
sudo systemctl restart apache2
Bu sayede CDN üzerinden gelen istekler, doğru IP adresleri ile loglanacaktır.
Apache ve CDN entegrasyonunu tamamladıktan sonra aşağıdaki adımları uygulayarak sistemi test edebilirsiniz:
Apache web sunucusunun CDN ile entegrasyonu, web sitenizin performansını önemli ölçüde artırır. Bu adımları takip ederek CDN’inizi etkin bir şekilde kullanabilir, web sitenizi hızlandırabilir ve Apache sunucunuzun üzerindeki yükü hafifletebilirsiniz. Entegre edilen CDN sayesinde, yüksek trafikle başa çıkmak daha kolay hale gelir ve kullanıcılarınıza daha iyi bir deneyim sunabilirsiniz.