cPanel Üzerinde nginx Webserver Çalıştırmak

nginx webserver, Apache ile birlikte çalıştığında, tek başına Apache’ye göre kat kat iyi performans sağlayan bir web sunucusunudur. Hatta, Litespeed ile yaptığımız denemelerde de mükemmel performans vermiştir. Performans sıkıntısı yaşanan sunucu veya VDS/VPS’lerde, kesinlikle kurulumunun yapılarak test edilmesinde büyük fayda var, sistemi çok büyük ölçüde rahatlatacaktır.

Kuruluma başlamadan önce bilinmesi gereken birkaç önemli nokta var.

  • nginx, wildcard subdomain desteklememektedir. Wildcard subdomain kullanıyorsanız, nginx konfigürasyon dosyası hatası verecek ve başlamayacaktır.
  • nginx kullanmaya başladığınızda, cPanel sitelerin harcanan trafik kayıtlarını doğru olarak tutmayacaktır.
  • SSL kullanan siteler varsa, bu anlatım bu sitelerde nginx’i aktifleştirmeyecektir, bütün istekleri doğrudan Apache karşılayacaktır.

İlk olarak nginx’den Apache’ye gelen talepleri normal bir talep olarak gösterecek olan mod_rpaf kurulumunu yapalım.

cd /usr/local/src
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar xvfz mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
/usr/local/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

Bu kurulum tamamlandıktan sonra seri bir şekilde PCRE kütüphanesini ve nginx web sunucusunu yapabiliriz(nginx son sürüm için buraya, PCRE son sürümü için buraya bakınız).

cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.12.tar.gz
tar xvfz pcre-8.12.tar.gz
cd pcre-8.12
./configure
make
make install

cd /usr/local/src
wget http://nginx.org/download/nginx-0.8.54.tar.gz
tar xvfz nginx-0.8.54.tar.gz
cd nginx-0.8.54
./configure
make
make install
mkdir /var/log/nginx

Bu kurulumları da tamamladıktan sonra, WHM’den şu yol izlenmelidir: Main -> Service Configuration ->Apache Configuration -> Include Editor
Bu sayfaya girdiğinizde Pre Main Include bölümünden Apache sürümünüzü seçiniz ve açılan textarea içine şunu yapıştırınız:

LoadModule rpaf_module modules/mod_rpaf-2.0.so

RPAFenable On

RPAFproxy_ips 127.0.0.1 ip1 ip2 ip3 ip4...(ip kısımlarını sunucudaki bütün ip adreslerini aralarında bir boşluk olacak şekilde düzenleyiniz)

RPAFsethostname On

RPAFheader X-Real-IP

Bu işlemden sonra, Apache portunu düzenlememiz gerekli. Böylece Apache 80 yerine 81 portunda çalışacak ve nginx 80 portunu dinleyecek, talepleri 81 portundaki Apache’ye gönderecek. Bunu yapmak için, WHM’nin Server Configuration -> Tweak Settings bölümüne girmeniz gerekli, bu bölümde sayfada :80 şeklinde arama yapıp, bulduğunuz bölümde 0.0.0.0:80 yerine bunun altındaki kutucuğu seçip kutucuğa 0.0.0.0:81 yazmanız ve bu ayarları kaydetmeniz yeterli. Bunu yaptıktan sonra da şu komutu çalıştırmak gerekecek:

/usr/local/cpanel/whostmgr/bin/whostmgr2 –updatetweaksettings

Şimdi ise nginx konfigürasyonunu oluşturmak için bir script kullanacağız. Bunu yapmak için;

cd /root
nano nginx.sh

komutlarını çalıştırdıktan sonra editör içerisine aşağıdakini yapıştırın:

#!/bin/sh

cat > "/usr/local/nginx/conf/nginx.conf" <> "/usr/local/nginx/conf/vhost.conf" </dev/null 2>&1
}

case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac

initscript’e gerekli çalışma izinleri:

chmod +x /etc/init.d/nginx

ve eğer isterseniz nginx’in sistem her açıldığında otomatik olarak çalışması için:

chkconfig nginx on

Artık nginx tamamen hazır. İlk olarak, Apache konfigürasyon değişikliklerinin aktif olmasını sağlayalım:

/scripts/rebuildhttpdconf
service httpd restart

ve artık nginx’i başlatabiliriz:

service nginx start

Sisteminizdeki performans farkını artık kendi gözlerinizle de görebilirsiniz.

“cPanel Üzerinde nginx Webserver Çalıştırmak” üzerine 11 yorum.

  1. /usr/local/nginx/sbin/nginx -t
    bu kodu girdiğimde

    [emerg]: unknown directive “setting” in /usr/local/nginx/conf/nginx.conf:13

    bu hatayı alıyorum

    1. Konfigürasyon dosyasında hata olduğunu söylüyor, dosya içeriğini hatalı yazmış olabilirsiniz.

  2. 🙂 bu bence hiçbir işe yaramıyor 🙂

    sadece proxy oldğu için %5 anca performans gösteriyor..

    bazende apachenin yavaşlığını geçiyor php tabanlı sitelerde apache html de nginx çalışmakta 🙂

    en güzeli en iyisi litespeed kim nederse desin

    1. Kesinlikle işe yaradığından emin olabilirsiniz. Talepleri Apache’ye göre çok daha rahat karşılıyor. Bir kampanya zamanında aşırı girişten sitemiz kilitlenmişti, acil şekilde nginx’i aktif ettik ve hiçbir sorun yaşamadık.

  3. Merhaba,

    Buradaki sh nginx.sh komutu uyguladığımda aşağıdaki gibi bir hata alıyorum.

    root@server3 [~]# sh nginx.sh
    nginx.sh: line 2: worker_processes: command not found
    nginx.sh: line 4: error_log: command not found
    nginx.sh: line 5: pid: command not found
    nginx.sh: line 7: worker_rlimit_nofile: command not found
    nginx.sh: line 9: events: command not found
    nginx.sh: line 10: worker_connections: command not found
    nginx.sh: line 11: use: command not found
    nginx.sh: line 12: syntax error near unexpected token `}’
    nginx.sh: line 12: `}’

    1. Kurulum hatalı yapılmış gibi görünüyor ya da kurulum dökümanı son sürümleri desteklemiyor olabilir. Tekrar kurulum dosyalarını indirip denemenizi öneririm.

  4. CentOS 5, Plesk sunucu üzerine nginx için php-fpm modülünü kurmak istiyorum ama yeterli bir bilgiye ulaşamıyorum bir türlü. Bulduklarım da işe yaramıyor. Konuyla ilgili bir bilginiz var mıdır?

  5. Ben kurulum komutlarının ardından şu hataları alıyorum, nasıl çözebilirim?

    Generating vhosts…
    Traceback (most recent call last):
    File “/scripts/createvhosts.py”, line 7, in ?
    import yaml
    ImportError: No module named yaml
    Installing WHM interface…
    cp: cannot create regular file `/var/cpanel/apps/nginxcp.conf’: No such file or directory
    Installing mod_rpaf…
    Updating cPanel Configuration
    Traceback (most recent call last):
    File “/usr/local/src/publicnginx/nginxinstaller2”, line 15, in ?
    import createvhosts
    File “/usr/local/src/publicnginx/createvhosts.py”, line 7, in ?
    import yaml
    ImportError: No module named yaml
    root@server1 [/usr/local/src/publicnginx]#

    1. Anladığım kadarıyla python sürümüyle alakalı bir hata. Yaptığım testlerde hatayı göremediğimden malesef çözüm sunamamaktayım.

Bir yanıt yazın