cPanel sunucularda Apache tek başına çalıştığında yüksek trafik altında yavaşlayabilir. Bu durumda Nginx’i reverse proxy olarak Apache’nin önüne konumlandırmak, CPU ve RAM kullanımını daha dengeli hale getirir.
Reverse Proxy Mimarisi Nasıl Çalışır?
Yapılandırmaya başlamadan önce kuracağımız mimariyi netleştirelim. Klasik yapıda istemci doğrudan Apache ile iletişim kurar. Bizim kuracağımız reverse proxy modelinde ise tüm trafik önce Nginx tarafından karşılanır.
Nginx, statik dosyaları doğrudan diskten okuyarak istemciye sunar. Dinamik PHP isteklerini ise arka planda farklı bir portu dinleyen Apache’ye iletir.
Client → Nginx (80/443) → Apache (8080) → PHP-FPM
Bu mimariyi cPanel olmadan, saf bir işletim sistemi üzerinde nasıl kurgulayacağınızı merak ediyorsanız, dış kaynaklı AlmaLinux Üzerinde Apache + Nginx Proxy Kurulumu rehberinden faydalanabilirsiniz.
Kurulum Öncesi Gereksinimler
Sunucumuzda AlmaLinux 8/9 veya CloudLinux 7/8 işletim sistemi yüklü olmalı, cPanel v88 ve üzeri bir sürüm kullanılmalıdır. EasyApache 4’ün aktif olduğundan ve sunucuda root erişimimizin bulunduğundan emin oluyoruz.
- AlmaLinux 8 veya 9 ya da CloudLinux 7 veya 8
- cPanel v88 ve üzeri
- EasyApache 4 aktif
- Root SSH erişimi
Kuruluma başlamadan önce sunucuda Engintron veya NginxCP gibi üçüncü taraf proxy yazılımlarının bulunmadığını doğruluyoruz, çünkü bu yazılımlar port çakışmasına neden olacaktır.
ea-nginx Paketinin Kurulumu
cPanel’in resmi paketi olan ea-nginx’i kullanarak sistemi yapılandırıyoruz.
Terminal üzerinden root erişimiyle şu komutu yürütelim.
dnf install ea-nginxBu işlem tamamlandığında sistem otomatik olarak Nginx’i yükler, Apache’yi 8080 portuna çeker ve proxy zincirini oluşturur. Ardından, tüm mevcut konfigürasyonların Nginx ile uyumlu hale gelmesi için şu komutu çalıştıralım.
/scripts/ea-nginx config --allNginx yapılandırması tamamlandığında, sunucudaki tüm alan adları otomatik olarak bu performans artışından yararlanır. Yeni bir proje için yapılandırma yapacaksanız, CPanel Üzerinden Alt Domain Nasıl Açılır? dökümanımızı inceleyerek süreci en baştan doğru şekilde başlatabilirsiniz.
WHM ve cPanel Arayüz Entegrasyonları
Kurulumun ardından hem yönetici hem de kullanıcı tarafında gerekli yönetim araçlarını aktif edelim.
Yönetici Paneli (WHM) Kontrolleri
WHM panelinde yer alan NGINX Manager kısmına giriyoruz. Burada System sekmesi altında servisin Running durumda olduğunu kontrol edelim. User Settings kısmında, özel yazılım gereksinimleri nedeniyle Nginx dışında tutulması gereken hesaplar varsa bunları yönetebiliyoruz.
Kullanıcı Paneli (cPanel) Yetkilendirmesi
Kullanıcıların kendi önbelleklerini yönetebilmeleri için WHM → Feature Manager üzerinden Nginx Manager özelliğini aktif ediyoruz.

Böylece kullanıcılar kendi cPanel arayüzlerinde NGINX Caching ikonunu görebilir, önbelleği temizleyebilir.

Dosya Yapısı
Gelişmiş özelleştirmeler için cPanel’in sunduğu dosya kuralını kullanıyoruz. Global ayarlar /etc/nginx/conf.d/ea-nginx.conf dosyasında tutulurken, kullanıcı bazlı özelleştirmeler için /etc/nginx/conf.d/users/kullaniciadi.conf yolunu izleyelim.
Eğer belirli bir domain için özel kurallar eklememiz gerekirse, ilgili kuralı oluşturup içine .conf dosyamızı ekliyoruz.
mkdir -p /etc/nginx/conf.d/users/kullaniciadi/domain.com/
nano /etc/nginx/conf.d/users/kullaniciadi/domain.com/ozel.confDosya içeriğine örnek bir proxy kuralı ekleyelim.
location /api/ {
proxy_pass http://127.0.0.1:8080;
proxy_cache_bypass $http_cookie;}Ayarlar ve Performans
Sunucu genelindeki Nginx ayarlarını yönetmek için cPanel’in resmi yöntemi olan JSON dosyasını kullanıyoruz. /etc/nginx/ea-nginx/settings.json dosyasını düzenleyerek bağlantı limitlerini ve zaman aşımı sürelerini belirleyelim.
{ "keepalive": "64",
"keepalive_timeout": "75",
"keepalive_requests": "500"}Değişikliklerin ardından konfigürasyonu yeniden oluşturup servisi yeniden başlatalım.
/usr/local/cpanel/scripts/rebuild_nginx_conf
systemctl restart nginxMicro-Caching ve Gzip
Yoğun trafik anlarında sistemi korumak için Micro-Caching tekniğini uyguluyoruz. Bu yöntemle dinamik içerikleri 1 saniye gibi çok kısa sürelerle önbelleğe alarak Apache üzerindeki yükü düşürüyoruz.
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=microcache:10m max_size=100m inactive=60m;
location / {
proxy_cache microcache;
proxy_cache_valid 200 1s;
proxy_pass http://127.0.0.1:8080;}Ayrıca veri iletim hızını artırmak için Gzip sıkıştırmayı aktif hale getirelim.
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml;Güvenlik, SSL ve IP Yönetimi
SSL sertifikaları cPanel tarafından yönetilmeye devam eder. ea-nginx bu sertifikaları otomatik olarak okur. Apache’nin ziyaretçi IP adreslerini doğru görebilmesi için mod_remoteip modülünün kurulu olduğunu şu komutla doğruluyoruz.
yum install ea-apache24-mod_remoteip
Sık Sorulan Sorular
ea-nginx kurulumu sonrası web sitelerimde kesinti yaşanır mı?
Nginx 80 ve 443 portlarını devralırken Apache otomatik olarak arka plana çekilir. Bu geçiş işlemi saniyeler içinde tamamlandığı erişim sorunu veya kesinti yaşamaz.
Nginx aktifken SSL sertifikalarımı manuel olarak güncellemem gerekir mi?
Nginx, cPanel tarafından oluşturulan SSL dosyalarını otomatik olarak okur ve HTTPS trafiğini yönetir. Sertifika yenileme süreçlerinde ek bir işlem yapmamıza gerek kalmaz.
Nginx devreye girdiğinde Apache modülleri ve .htaccess kuralları çalışmaya devam eder mi?
Nginx bir reverse proxy olarak çalıştığı için istekleri hala Apache işlemektedir. Bu sayede .htaccess üzerindeki yönlendirmeleriniz ve Apache modülleriniz işlevselliğini yitirmez.

