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.
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).
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:
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:
Şimdi ise nginx konfigürasyonunu oluşturmak için bir script kullanacağız. Bunu yapmak için;
nano nginx.sh
komutlarını çalıştırdıktan sonra editör içerisine aşağıdakini yapıştırın:
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:
ve eğer isterseniz nginx’in sistem her açıldığında otomatik olarak çalışması için:
Artık nginx tamamen hazır. İlk olarak, Apache konfigürasyon değişikliklerinin aktif olmasını sağlayalım:
service httpd restart
ve artık nginx’i başlatabiliriz:
Sisteminizdeki performans farkını artık kendi gözlerinizle de görebilirsiniz.
/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
Konfigürasyon dosyasında hata olduğunu söylüyor, dosya içeriğini hatalı yazmış olabilirsiniz.
🙂 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
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.
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: `}’
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.
Hocam kurulum hatası alıyorum yardımcı olabilecekmisiniz?
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?
Bu konuda ne yazık ki bir dökümantasyonumuz bulunmamaktadır.
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]#
Anladığım kadarıyla python sürümüyle alakalı bir hata. Yaptığım testlerde hatayı göremediğimden malesef çözüm sunamamaktayım.