Klasik bir LAMP (Linux, Apache, MySQL, PHP) sunucusunda Apache hem PHP'yi işler hem de resim, css, js gibi statik dosyaları ziyaretçiye iletir. Ancak Apache her bağlantı için yeni bir süreç açtığı için sanal sunucu üzerinde statik dosyaları dağıtırken bile gereksiz yüksek RAM tüketir. Çözüm; Nginx'i Apache'nin hemen önüne "Ters Vekil" (Reverse Proxy) olarak kurmaktır. Nginx asenkron yapısıyla statik dosyaları milisaniyeler içinde servis ederken, dinamik PHP isteklerini arka planda çalışan Apache'ye (port 8080) paslar. Bu ikili, mükemmel bir performans canavarına dönüşür.
1. Adım: Apache Portunun Değiştirilmesi
Öncelikle Apache'nin varsayılan 80 (HTTP) profilinden çekilip arkada çalışması gerekir. Ubuntu/Debian sistemlerde /etc/apache2/ports.conf dosyasını açın:
Listen 8080
Aynı şekilde sanal konak (virtual host) dosyalarınızdaki <VirtualHost *:80> kısımlarını <VirtualHost *:8080> olarak değiştirin ve Apache'yi yeniden başlatın: sudo systemctl restart apache2
2. Adım: Nginx Kurulumu ve Proxy Ayarları
Boşa çıkan 80. portu devralmak için Nginx'i kuralım:
sudo apt update
sudo apt install nginx -y
Şimdi /etc/nginx/sites-available/default (veya kendi domaininiz) dosyasının içeriğini aşağıdaki Proxy şablonuna göre düzenleyin:
Yukarıdaki konfigürasyonda en alttaki location ~* bloğu, şayet istek bir resim veya css dosyasına gelirse Nginx'in bunu direkt klasörden (Apache'ye hiç sormadan) okumasını söyler ve tarayıcıya 30 günlük bir cache süresi ekler. Diğer tüm dinamik istekler (PHP) proxy_pass http://127.0.0.1:8080; kuralıyla arkadaki Apache'ye iletilir.
Sitenizin trafiği yükseldiğinde sunucu kaynaklarını en verimli şekilde kullanmak bir zorunluluktur. İyibirNet üzerinden alacağınız NVMe SSD diskli VDS Sunucu hizmetlerinizde, dilediğiniz sunucu mimarisini özgürce kurgulayabilirsiniz.