cPanel Sunucularda Düşük RAM ve CPU İçin Nginx

Apache, cPanel ortamında tek başına hizmet verdiğinde özellikle yüksek eş zamanlı bağlantılarda sistem kaynaklarını zorlayabilir. Nginx’in reverse proxy olarak Apache’nin önüne eklenmesi, yükü paylaşarak işlemci ve bellek kullanımını optimize eder ve sunucu performansını daha stabil hale getirir.

Reverse Proxy Mimarisi Nasıl Çalışır?

Kurulumun temelinde Nginx yazılımını bir kalkan gibi öne koymak yatar. İstemciden gelen talepler önce Nginx süzgecinden geçer. Statik içerikler burada yanıtlanır. Dinamik PHP istekleri ise ikinci aşamada Apache sunucusuna iletilerek sunucu üzerindeki baskı azaltılır.

Client → Nginx (80/443) → Apache (8080) → PHP-FPM

Panel bağımsız bir kurulum arayışındaysanız AlmaLinux Üzerinde Apache + Nginx Proxy Kurulumu rehberi size bu konuda yardımcı olacaktır.

Kurulum Öncesi Gereksinimler

İşlemlere başlamadan önce sunucunuzda AlmaLinux 8 veya 9 ya da CloudLinux 7 veya 8 yüklü olmalıdır. cPanel sürümünüzün v88 ve üzeri olduğundan emin olun. Ayrıca EasyApache 4 aktif olmalı ve root erişiminiz bulunmalıdır. Sistemde Engintron veya NginxCP gibi üçüncü taraf yazılımlar yüklü olmamalıdır çünkü bunlar port çakışması yaratır.

ea-nginx Paketinin Kurulumu

cPanel tarafından sunulan resmi ea-nginx paketini kullanarak kuruluma başlıyoruz. Sunucunuza root olarak bağlandıktan sonra şu komutu çalıştırmanız yeterlidir.

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ı bittiğinde sunucudaki tüm domainler otomatik olarak hızlanacaktır. Yeni projelerinizde işe doğru başlamak için CPanel Üzerinden Alt Domain Nasıl Açılır rehberimize göz atabilirsiniz.

Yönetim Araçlarının Aktif Edilmesi

Kurulumun ardından hem yönetici hem de kullanıcı tarafında gerekli yönetim araçlarını aktif edelim. 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ıların kendi önbelleklerini yönetebilmeleri için ise WHM içerisindeki Feature Manager üzerinden Nginx Manager özelliğini aktif ediyoruz.

Dosya Yapısı

Gelişmiş özelleştirmeler yapabilmek adına cPanel tarafından sunulan dosya kurallarını kullanıyoruz. Sistemin genel ayarları /etc/nginx/conf.d/ea-nginx.conf dosyasında saklanmaktadır. Eğer kullanıcı bazlı özel bir yapılandırma yapmamız gerekirse /etc/nginx/conf.d/users/kullaniciadi.conf yolunu takip etmelisiniz. Belirli bir domain için özel kurallar eklemek istediğinizde ise ilgili dizinde yeni bir kural oluşturup içine .conf dosyanızı ekleyerek süreci tamamlıyoruz.

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 dilediğimiz gibi belirleyelim. Bu sayede sunucu kaynaklarını çok daha verimli bir şekilde yönetme şansına sahip oluyoruz.

{ "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

Yüksek trafik yükünü yönetebilmek adına Micro-Caching uygulamasını hayata geçiriyoruz. Dinamik içeriklerin 1 saniye süresince önbellekte tutulması prensibine dayanan bu işlemle Apache yükünü en düşük seviyeye çekiyoruz. Gzip sıkıştırmasıyla birleşen bu yapı sunucuya yüksek hız kazandırıyor.

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 ve 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 doğrulamamız gerekir. Bunun için terminal üzerinden ilgili komutu çalıştırarak modülün aktifliğini kontrol ediyoruz.

yum install ea-apache24-mod_remoteip

Sık Sorulan Sorular

ea-nginx aktif edilirken web siteleri etkilenir mi?

Nginx servisinin portları devralması saniyeler sürer. Bu sırada Apache de arka plana çekilir. Bu hızlı değişim sayesinde sunucu genelinde bir kopma veya kesinti meydana gelmez.

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 kullanımı Apache modüllerinin çalışmasını engeller 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.

Yorum yapın