Centos ve cpanel sunucularda nginx kurulumu

By LovelessGent
Eyl 2nd, 2012
1 Comment
918 Views

Arkadaslar nginx nedir, neler yapar kisaca bir kac cumle ile belirtip hemen dokumani hazirlamaya baslayacagim. Detaylarina daha sonraki yazilarimda girecegim. Nginx apache gibi bir websunucusudur. Ancak kendi akranlarindan cok daha iyidir, oyleki ucretli litespeed den bile daha iyi olarak nitelendirilmektedir, cogu buyuk mecralarda da kullanilmaktadir. Ben kesinlikle apache kullaniyorsaniz yanina nginx ide katip devam etmenizi oneririm. Hem saldirilara karsi, hemde site hizi, sunucu yuku gibi durumlarda tam bir battal gazi diyebilirim 🙂 Neyse kisa bir edebiyat ve direk konumuza geciyorum. Centos ve cpanelli sunucularda nginx kurulumunu anlatacagim. Dokuman denenmistir ve yazinin yazildigidi tarih gunceldir. Pleskde denemedim ama yakinda onuda deneyip onun icinde bir yazi hazirlayacagim.

Size anlatacagim yontem apache ile stabil calisan ve url rewrite kurallarini yine sitenizin .htaccess dosyanizdan belirtebileceginiz sekilde yapabilmenizi saglayacak. bunun icin apacheye lazim olacak olan bir kac modulu kurmamiz gerekiyor. isterseniz oncelikle onlardan baslayalim:

Baslamadan once bilmeniz gerekenler:
1 – SSH ile asagidaki islemler gerceklestirilecek, ara ara WHM panelden de ayar yapmamiz gerekecek.
2 – dosya duzenlemelerinde ve olusturmalarinda nano programini kullanacagiz, dosya kaydedip cikmak icin bu sirayi izlemeniz yeterli: F2 –> Y –> ENTER
3 – Hosunuza giden bir muzik acmanizda gerekebilir, motivasyon acisindan cok onemli..

1 – Apache icin mod_rpaf kurulumu:
mod proxy and forward denilen bu modul sayesinde biz nginxden gelen istemlerin normal istemciden gelmish gibi gorunmesini saglayacagiz.

Centos sunucularda Nginx kurulumuGuncel modul versiyonu icin buraya bakabilirsiniz (asagidaki gunceldir): http://stderr.net/apache/rpaf/download/

  • 1
    cd /usr/local/src

  • 1
     wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz

  • 1
     tar xvfz mod_rpaf-0.6.tar.gz

  • 1
     cd mod_rpaf-0.6

  • 1
     /usr/local/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

mod_rpaf kurulduktan sonra WHM panelinizi acin ve asagidaki yolu izleyin:

WHM: Main >> Service Configuration >> Apache Configuration > Include Editor > Pre Main Include

Asilan sayfada pre main include kismindaki seceneklerden kullandiginiz versiyonu secin (all version) ve altinda acilan bos yere asagidakileri ekleyin ve kaydedin: (ornek resim)

  • LoadModule rpaf_module modules/mod_rpaf-2.0.so
  • RPAFenable On
  • RPAFproxy_ips 127.0.0.1 10.0.0.1 (ornek: 127.0.0.1 IP1 IP2 IP3 v.s)
  • RPAFsethostname On
  • RPAFheader X-Forwarded-For

Kod icerisinde de belirtilen ip kisminin devamina sunucuda ekli olan butun ipleri bir bosluk birakarak yazmaniz gerekli, aksi halde istatistik programlari veya scriptleri her ziyaretciyi default sunucu ip sinde gorecektir, yani kod icerisindeki (127.0.0.1) ipsinden.
NOT: 127.0.0.1 ip adresini silmemeniz gerekli, diger ip adreslerini devamina eklemeniz gerekli.. (sunucuda kac ip varsa hepsini bir bosluk birakarak devamina ekleyin.)

2 – PCRE kütüphanesini Yüklemek (Guncellendi –

1
pcre 8.20

)

Son sürümü buradan indirebilirsiniz:

1
 
  • 1
    cd /usr/local/src

  • 1
     wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.20.tar.gz

  • 1
     tar xvfz pcre-8.20.tar.gz

  • 1
     cd pcre-8.20

  • 1
     ./configure

  • 1
     make

  • 1
     make install

1
 

Bu modulunde kurulumu bittikten sonra sira geldi Nginx’i kurmaya.

3 – Nginx Kurulumu
Nginx’in son surumunu indirmek icin buraya bakabilirsiniz. eger konuda anlatilandan daha yeni bir versiyon varsa onu uyarlayip kuruluma devam edin. ( nginx-nginx-1.0.11 stable version guncellendi )

Stable versiyon KURULUMU

1
 
  • 1
    cd /usr/local/src

  • 1
     wget http://nginx.org/download/nginx-
    1
    1.0.11

    .tar.gz

  • tar xvfz nginx-1.0.11.tar.gz
  • cd nginx-1.0.11
  • ./configure
  • make
  • make install

 

Development versiyon KURULUMU
Development versiyon, gelismis kullanicilarin gelistirme amacli kullanabilecekleri versiyon, lutfen gelistirme amacli kullanmayacaksaniz stable versiyonu kurun, yani ustdekini.

Suanki Nginx Development versiyonu 1.1.13 ; Kurulumu ise asagidadir:

 

  • 1
    cd /usr/local/src

  • 1
     wget http://nginx.org/download/nginx-
    1
    1.1.13

    .tar.gz

  • tar xvfz nginx-1.1.13.tar.gz
  • cd nginx-1.1.13
  • ./configure
  • make
  • make install

Sonrasinda nginx hata loglari icin bir klasor olusturalim:

1
 
  • 1
    mkdir /var/log/nginx

Bu hata log olayini daha sonra nginx config dosyasinda duzenleyebilirsiniz (/usr/local/nginx/conf/nginx.conf)

Cpanel sunucularda Nginx kurulumu4 – Apache Portunu duzenlemek
Bu adimda genelde 80 portunu kullanir apache, biz bunu nginx okuyabilecegi sekilde duzenleyecegiz ve 81 portunu acacagiz. boylece DOMAIN.COM:80 olarak girildiginde apache calisacak, DOMAIN.COM:81 seklinde girildiginde de nginx calisacak. Boylece gelen istekleri yonlendirecegiz.

Yine WHM panelinize girin ve asagidaki yolu takip edin:
WHM: Main >> Server Configuration >> Tweak Settings

Bu sayfada asagidakilerden birisini aratin:
1: Apache non-SSL IP/port
2: 0.0.0.0:80

(bunu: 0.0.0.0:80 bu sekilde degistirip kaydedeceksiniz: 0.0.0.0:81)

Buradaki resimdeki gibi bir alan bulmaniz gerekli, sonrasinda 80 olan kismi siz 81 olarak degistirip en altan ayarlari kaydet yapacaksiniz.

Bu islemden sonra asagidaki kodu calistiriyoruz:

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

Ardindan asagidakileri yapip ayarlari tam kaydediyoruz:

1
 
  • 1
    /scripts/rebuildhttpdconf

  • 1
     /etc/init.d/httpd restart

Sonrasinda bir script yazarak ve calistirarak hesabinizdaki sitelerin config dosyasini otomatik olusturmasini saglayacagiz. Bunun icin asagidaki sirayi takip edin:

  • 1
    cd /root

  • 1
     nano nginx.sh

acilan bos ekrana asagidakileri kopyalayip yapistirin:

  • #!/bin/sh
  • cat > “/usr/local/nginx/conf/nginx.conf” < <EOF
  • user nobody;
  • # no need for more workers in the proxy mode
  • worker_processes 1;
  • error_log /var/log/nginx/error.log;
  • pid /var/run/nginx.pid;
  • worker_rlimit_nofile 8192;
  • events {
  • worker_connections 2048;
  • use epoll;
  • }
  • http {
  • server_names_hash_max_size 8192;
  • include mime.types;
  • default_type application/octet-stream;
  • sendfile on;
  • tcp_nopush on;
  • tcp_nodelay on;
  • keepalive_timeout 10;
  • gzip on;
  • gzip_min_length 1100;
  • gzip_buffers 4 32k;
  • gzip_types text/plain application/x-javascript text/xml text/css;
  • ignore_invalid_headers on;
  • client_header_timeout 3m;
  • client_body_timeout 3m;
  • send_timeout 3m;
  • connection_pool_size 256;
  • client_header_buffer_size 4k;
  • large_client_header_buffers 4 32k;
  • request_pool_size 4k;
  • output_buffers 4 32k;
  • postpone_output 1460;
  • include “/usr/local/nginx/conf/vhost.conf”;
  • }
  • EOF
  • /bin/cp /dev/null /usr/local/nginx/conf/vhost.conf
  • cd /var/cpanel/users
  • for USER in *; do
  • for DOMAIN in `cat $USER | grep ^DNS | cut -d= -f2`; do
  • IP=`cat $USER|grep ^IP|cut -d= -f2`;
  • ROOT=`grep ^$USER: /etc/passwd|cut -d: -f6`;
  • echo “Converting $DOMAIN for $USER”;
  • cat >> “/usr/local/nginx/conf/vhost.conf” < <EOF
  • server {
  • access_log off;
  • error_log /var/log/nginx/error.log warn;
  • listen 80;
  • server_name $DOMAIN www.$DOMAIN;
  • #location ~* \.(gif|jpg|jpeg|png|wmv|avi|mpg|mpeg|mp4|js|css)$ {
  • # root $ROOT/public_html;
  • #}
  • location / {
  • proxy_send_timeout 90;
  • proxy_read_timeout 90;
  • proxy_buffer_size 4k;
  • # you can increase proxy_buffers here to suppress “an upstream response
  • # is buffered to a temporary file” warning
  • proxy_buffers 16 32k;
  • proxy_busy_buffers_size 64k;
  • proxy_temp_file_write_size 64k;
  • proxy_connect_timeout 30s;
  • proxy_redirect http://www.$DOMAIN:81 http://www.$DOMAIN;
  • proxy_redirect http://$DOMAIN:81 http://$DOMAIN;
  • proxy_pass http://$IP:81/;
  • proxy_set_header Host \$host;
  • proxy_set_header X-Real-IP \$remote_addr;
  • proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
  • }
  • }
  • EOF
  • done
  • done

Dosya iznini duzenleyip calistiralim:

1
 
  • 1
     # chmod 755 nginx.sh

  • 1
     # sh nginx.sh

Bu islemden sonra hesabinizda var olan siteler icin config dosyasi olusturacak.

Asagidaki komutu kullanarak ayarlarin dogru olup olmadigini kontrol ediyoruz:

1
 
  • 1
     # /usr/local/nginx/sbin/nginx -t

Simdide ssh den nginx programini yeniden baslatma, kapatma, baslatma gibi fonksiyonlari kazandirabilmemiz icin gereken scripti yazip kaydediyoruz. Bunun icin asagidaki adimi izlemeniz yeterli olacaktir:

1
 
  • 1
     # nano /etc/init.d/nginx

Bos ekrana asagidaki kodlari yapistirip kaydedin:

  • #!/bin/sh
  • #
  • # nginx – this script starts and stops the nginx daemin
  • #
  • # chkconfig: – 85 15
  • # description: Nginx is an HTTP(S) server, HTTP(S) reverse \
  • # proxy and IMAP/POP3 proxy server
  • # processname: nginx
  • # config: /usr/local/nginx/conf/nginx.conf
  • # pidfile: /var/run/nginx.pid
  • # Source function library.
  • . /etc/rc.d/init.d/functions
  • # Source networking configuration.
  • . /etc/sysconfig/network
  • # Check that networking is up.
  • [ “$NETWORKING” = “no” ] && exit 0
  • nginx=”/usr/local/nginx/sbin/nginx”
  • prog=$(basename $nginx)
  • NGINX_CONF_FILE=”/usr/local/nginx/conf/nginx.conf”
  • lockfile=/var/lock/subsys/nginx
  • start() {
  • [ -x $nginx ] || exit 5
  • [ -f $NGINX_CONF_FILE ] || exit 6
  • echo -n $”Starting $prog: “
  • daemon $nginx -c $NGINX_CONF_FILE
  • retval=$?
  • echo
  • [ $retval -eq 0 ] && touch $lockfile
  • return $retval
  • }
  • stop() {
  • echo -n $”Stopping $prog: “
  • killproc $prog -QUIT
  • retval=$?
  • echo
  • [ $retval -eq 0 ] && rm -f $lockfile
  • return $retval
  • }
  • restart() {Centos ve Cpanel sunucularda Nginx Kurulumu
  • configtest || return $?
  • stop
  • start
  • }
  • reload() {
  • configtest || return $?
  • echo -n $”Reloading $prog: “
  • killproc $nginx -HUP
  • RETVAL=$?
  • echo
  • }
  • force_reload() {
  • restart
  • }
  • configtest() {
  • $nginx -t -c $NGINX_CONF_FILE
  • }
  • rh_status() {
  • status $prog
  • }
  • rh_status_q() {
  • rh_status >/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

 

Olusturulan dosya izinlerini duzenleyip baslatiyoruz:

1
 
  • 1
     # chmod +x /etc/init.d/nginx

  • 1
     # chkconfig nginx on

Tekrar config dosya ayarlarinin duzgun olup olmadigini kontrol ediyoruz:

1
 
  • 1
    <span style="color: #008000;"># service nginx configtest</span>

Ve Buyuk An Nginx’i baslatiyoruz:

1
 
  • 1
     # service nginx start

Sorunsuz basladiginiz goruyorsaniz islemleri basari ile gecmissiniz demektir 🙂

istediginiz zaman nginxe asagidaki sekilde restart atabilirsiniz (yani yeniden baslatabilirsiniz):

1
 
1
 
  • 1
     # service nginx restart

 

**************

Resim, imaj, css, js,rar,zip,exe v.s gibi dosyalarin nginx tarafindan islenmesi icin yapmaniz gerekenler:

Resim, css, js gibi dosyalari nginx in islemesi icin vhost.conf (/usr/local/nginx/conf/vhost.conf) dosyasinda asagidaki gibi kodlar olacak onlarin basinda # isaretlerini kaldirmaniz gerekli:

  • #location ~* \.(gif|jpg|jpeg|png|wmv|avi|mpg|mpeg|mp4|js|css)$ {
  • # root $ROOT/public_html;
  • #}

Bunu yapmanizi kesinlikle oneririm, cunku statik dosyalari nginx e yonledirirsek cok daha yuksek hiz farkini elde edebilirsiniz.. Boylece Apacheye gelen istek sayisi dusecegi icin sunucuya binecek yukde minumum duzeyde olacaktir..

ornek isratleri kaldirinca bu sekilde oluyor:

  • location ~* \.(gif|jpg|jpeg|png|wmv|avi|mpg|mpeg|mp4|js|css)$ {
  • root $ROOT/public_html;
  • }

NOT: $ROOT kismini sitenizin yolu ile degistirin. Ornegin: /home/kuazaland/public_html
******************

UYARI: Bazi arkadaslar stable versiyon ile development versiyonu karistiriyorlar. Kurmaniz gereken versiyon herzaman stable versiyon olmalidir. Cunku development versiyon gelistirme surumudur. Eger gelistirici degilseniz stable versiyonu kurmaniz yeterlidir. Gelistirme amacli kurup gelistirmek isteyenler development versiyonu kurabilirler..

Makaledeki nginx kurulumu son versiona guncellendi: nginx 1.1.13 Developmend ve nginx 1.0.11 Stable versiyon ve

1
pcre 8.20

: 26/01/2012 / 00:32

Herhangi bir sorunda konu altindan bilgilendirme yaparsaniz, makale o yonde guncellenecektir. Yaziyi hazirlarken yararlandigim orjinal kaynak makaleci ve makalenin orjinali de webhelpcenter. Kolay gelsin.

One Response to “Centos ve cpanel sunucularda nginx kurulumu”

  1. […] Panel Üzerinden PHP Versiyonu Nasıl Değiştirilir ? Başarılar! Linux CentOS – Plesk Panel – Çoklu Php Desteği – Multi Panda Php Update Upgrade konusu […]

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Connect with Facebook