Centos ve cPanel sunucularda nginx kurulumu?

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.

Guncel modul versiyonu icin buraya bakabilirsiniz (asagidaki gunceldir):http://stderr.net/apache/rpaf/download/

Kod:
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


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.

Kod:
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 – pcre 8.20)

Son sürümü buradan indirebilirsiniz:



Kod:
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.20.tar.gz
tar xvfz pcre-8.20.tar.gz
cd pcre-8.20
./configure
make
make install

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

Kod:
cd /usr/local/src
wget http://nginx.org/download/nginx-1.0.11.tar.gz
tar xvfz nginx-1.0.11.tar.gz
cd nginx-1.0.11
./configure
make
make install

Sonrasinda nginx hata loglari icin bir klasor olusturalim:

Kod:
mkdir /var/log/nginx

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

4 – 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:

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

Ardindan asagidakileri yapip ayarlari tam kaydediyoruz:


Kod:
/scripts/rebuildhttpdconf
/etc/init.d/httpd restart

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

Kod:
cd /root
nano nginx.sh

acilan bos ekrana asagidakileri kopyalayip yapistirin:

Kod:
#!/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: # chmod 755 nginx.sh # sh nginx.sh Bu islemden sonra hesabinizda var olan siteler icin config dosyasi olusturacak. Asagidaki komutu kullanarak ayarlarin dogru olup olmadigini kontrol ediyoruz: # /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: # nano /etc/init.d/nginx Bos ekrana asagidaki kodlari yapistirip kaydedin:

Kod:
#!/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() {
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 &gt;/dev/null 2&gt;&amp;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:

Kod:
chmod +x /etc/init.d/nginx
chkconfig nginx on

Tekrar config dosya ayarlarinin duzgun olup olmadigini kontrol ediyoruz:

Kod:
service nginx configtest

Ve Buyuk An Nginx’i baslatiyoruz:

Kod:
service nginx start

Sorunsuz basladiginiz goruyorsaniz islemleri basari ile gecmissiniz demektir 

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

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:

Kod:
#location ~* .(gif|jpg|jpeg|png|wmv|avi|mpg|mpeg|mp4|js|css)$ {
# root $ROOT/public_html;
#}
Kod:
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..

129 Okunma 10 Eki 2014

Yorumlar


Sen de Yorumla!