"Enter"a basıp içeriğe geçin

cPanel Sunucularda Nginx Reverse Proxy (ea-nginx) Yapılandırma

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-nginx

Bu 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 --all

Nginx 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.

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.conf

Dosya 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 nginx

Micro-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.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir