Kategoriler
Centos hakkında Nginx Plesk

Centos/Plesk panel sunucularda nginx kurulumu!

Plesk panel kullananların yıllardan beri aynıdır sorunu, nginx ‘i iyi şekilde kuramamak :) Aşağıdaki anlatacağım yazı ile 5dk gibi bir sürede sitelerinizi nginx yardımı ile göstermeye başlayabilirsiniz. Yaptığım testlerde hit olmamasına rağmen apache üzerindeki wordpress siteler oldukça yavaş durumdaydı. Nginx e geçtikten sonra bu süre gözle görülür derecede düştü ve sitede dolaşma, gezme oranı arttı..

Testler sırasında kullandığım plesk panel son versiyondu sanırım 10.0.1 15 günlük deneme süresi var. ancak aplıkasyon kısmı çok hoşuma gitti, birçok şeyi kolayca ve hızlıca kurabiliyorsunuz, ilerde bu konuda detaylı bir inceleme yapacağım :)

1: ilk adım nginx’i kuralım
Nginx’i yum deposundan kuracağız, büyük ihtimal yum deponuzda nginx uygulaması yoktur, bu yüzden aşağıda işletim sisteminize uygun olan kısmı ssh den çalıştırın:

CentOS 5

rpm -Uvh http://nginx.org/packages/centos/5/noarch/RPMS/nginx-release-centos-5-0.el5.ngx.noarch.rpm

CentOS 6

rpm -Uvh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

Sonrasında aşağıdaki yum kodu ile nginxi kuralım:

yum install nginx

Kurulum sırasında size kurulsunmu diye soru süracak y yaparak enter yapın kurulum tamamlansın. şuanda nginx sisteminize sorunsuz şekilde kurulmuştur.

Sırada nginx conf dosyasını kendi hazırladığımız ile değiştirmek var:

rm -rf /etc/nginx/nginx.conf
cd /etc/nginx/
wget www.makaleci.com/dersler/nginx/nginx.conf

2: Siteleri Nginx’e tanıtma
Sıra hesabımızdaki siteleri nginx’e tanıtmaya geldi. Bunun için bu dosyayı düzenlememiz gerekli:
/etc/nginx/conf.d/default.conf

Ben düzenlemek için cuteftp yada filezilla programını kullanıyorum. ancak sizde bunlardan birisi yoksa ssh ilede düzenleme yapabilirsiniz.
SSH ile dosyayı düzenlemek için bu şekilde açın: nano /etc/nginx/conf.d/default.conf

Dosya içerisindeki herşeyi silin ve aşağıdaki örnek kodu düzenleyerek ekleyin: (Guncellendi: 22/11/2011 19:26)

server {
access_log off;
error_log /var/log/httpd/nginx.errors.DOMAIN.com.log warn;
listen 80;
server_name DOMAIN.com www.DOMAIN.com;

# Nginx'in calistirmasini istediginiz statik dosya uzantilarini belirleyin.
location ~* .(gif|jpg|jpeg|png|wmv|avi|mpg|mpeg|mp4|js|css)$ {
root /var/www/vhosts/DOMAIN.com/httpdocs; # Burda domaine ait kok dizini belirtiyoruz.
}

location / {
proxy_send_timeout 90;
proxy_read_timeout 90;

proxy_buffer_size 4k;
proxy_buffers 16 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

proxy_connect_timeout 30s;

proxy_redirect http://www.DOMAIN.com:8080 http://www.DOMAIN.com;
proxy_redirect http://DOMAIN.com:8080 http://DOMAIN.com;

proxy_pass http://DOMAIN-IP-ADRESINIZ:8080/;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

Bu kalıp’a dikkat edin, hesabınızda kaç tane domain varsa bu kalıbı kullanarak tanımlamanız gerekli, yani her domain için alt alta yeniden eklemeniz gerekli. Yani bir domain için yukarıdaki kalıbı eklediğinizde default.conf dosyasına, yeni bir domain eklemek isterseniz aynı dosyada en altdan bir satır aşağı geçerek aynı kalıbı kullanarak diğer domaini tanımlamalısınız..

Ne kadar site varsa hepsini default.conf dosyasında tanımladıktan sonra dosyayı kaydedin ve kapatın.

3: Apache portunu düzenlemek
Şimdi yapacağımız işlemde apache portunu düzenleyerek nginx’e yönlendireceğiz, böylece gelen her istek nginx’e giderek işleyecek, statik dosyalar haricindekiler ise apachede kalacak. (hesabınızdaki siteler hariç, o düzenleme sonraki adımda yapılacak)

Bu dosyayı düzenlememiz gerekli: /etc/httpd/conf/httpd.conf
ssh ile yapacaklar: nano /etc/httpd/conf/httpd.conf

Bu dosya içinde Listen 80 kısmı bulup bu şekilde değiştireceğiz: Listen 8080
Kaydedip çıkıyoruz.

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

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

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
apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

Bu modulu kurabilmeniz icin sunucunuzda httpd-devel, gcc uygulamalarinin kurulu olmasi gereklidir, eger bunlar yoksa yada hata aliyorsaniz mod_rpaf kurulumunda asagidaki kodu ssh den calistirin ve eklentileri kurun:

yum install httpd-devel gcc

Sonrasinda mod_rpaf kurulumu kurulumunu tekrar bastan yapin..

mod_rpaf kurulduktan sonra httpd.conf dosyanizi acin ve musait bir yere ekleyin:

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.)

4: Hesabımızdaki siteleri nginx’e yönlendirelim
Pleskde sitelerin konfigürasyon dosyaları bu klasör içinde bulunur herzaman: /var/www/vhosts/DOMAİN.COM/conf
Bu klasör içinde domaine ait ip, yönlendirme v.s gibi bilgiler yer alır, burdaki dosyaları düzenleyerek içerisinde 80. portu gelen istekleri nginx portuna yönlendirecek şekilde düzenleyeceğiz. Bu düzenlemeyi her domain için yapmanız gerekli, en azından nginx’in yorumlamasını istediğiniz ve nginx’e tanıttığınız siteleriniz için.

Klasör içindeki bütün dosyaları açın, örnek bu şekilde oluyor isimleri genelde:

ve aşağıdaki gibi bir yer arayın: Genelde 135-140. satırlar arasında yer alır.


ServerName "DOMAIN.COM:80"
ServerAlias "www.DOMAIN.COM"

Yani kısaca ordaki dosyaların hepsini açın ve bunu aratın :80 bulduklarınızı da bununla değiştirin :8080

Yine bu düzenlemeyi o klasördeki bütün dosyalarda aratıp bulduklarınızda yapın. Ve hesabınızda ekli bütün domainler için ayrı ayrı yapmanız gerekli :)

4:a – Birden fazla IP li domain varsa eger:

birden fazla domain ve bu domainlere ayri ayri ip atanmis ise asagidaki gibi ipleri belirtmeniz gerekli her domain ipsi icin:

NameVirtualHost ip1:8080
NameVirtualHost ip2:8080
NameVirtualHost ip3:8080
NameVirtualHost ip4:8080

yani her ip icin tanimlama girmeniz gerekli. Genelde vps sitelerinde cikabilecek bir sorun, eger her domainize ayri ayri ip atamis iseniz bu ayari yapmaniz gerekmektedir. Aki halde acilmama gibi sorunlarla karsilasabilirsiniz.

Sonrasında önce apache’e restart atıp sonrada nginx’i başlatalım.
Apache restart:

service httpd restart

Nginx başlat:

service nginx start

Lazım olabilecekler:
Nginx yeniden başlatma:

service nginx restart

Guncellendi: 21/11/2011 19:39
Son bir adim kaldi. Oda kok dizin chmod ayarini duzenlemek. bunu yapmazsaniz nginx’e yonlendirdigimiz statik dosyalar calismayacaktir ve 404 not found hatasi verecektir.
Sitenizin kok dizininin chmod ayarini 0750 den 0755 e cevirin (degistirin): /var/www/vhosts/DOMAIN.com/httpdocs

Ornek resimdeki gibi olacak:

Buraya kadar sorunsuz ve hatasız geldi iseniz hayırlı olsun artık tanımladığını domainler nginx tarafından yorumlanıyor demektir. Bunu test etmek için buraya girip sitenizi sorgulatın ve çıkan sonuçlarda nginx ile versiyon numarasını görün. Görüyorsanız kendinizle gurur duyun :)

5: Nginx’i yeni versiyona guncelleme
Nginx yeni versiyon ciktiginda asagidaki yum kodunu ssh den yazip enter yapin:

yum update nginx

Sonrasinda size soru soracak y yazip enter yapin nginx guncellensin otomatik olarak :)

sonrasinda nginx e restart atalim:

service nginx restart

Bu dokümanı hazırlarken 3 vds den yararlandım, 3’unde de kurdum sorunsuz çalıştı. Netde ki çoğu anlatımda farklı eklentileride kurduruyorlar size ancak problem çıkmadığı için gerek duymadım onları kurmaya. ancak olaki bir sorun çıkarsa yorum olarak bize bildirin, doküman o yönde güncellenecek, yenilenecek, evrim geçirecektir :)

Su an itibari ile dokuman guncellenmistir: 31/01/2012 19:58 (domainleri nginx’e tanitirken kullandigimiz kalip kodlarinda guncelleme yaptim, nginx in isleyecegi statik dosyalari belirterek nginxden daha fazla yararlanmamizi sagladik.

Yeni guncelleme: mod_rpaf kurulumunu anlattim, bunun eksikliginde ziyaretciler ayni IP den girilmis gibi goruluyor ve ip bazli korumali scriptlerde giris sorunu yasanmaktadir. Ayrica giren herkesi ayni ipden gorundugu icin dogru sonuc alinamamaktadir. bu yuzden boyle eksiklikleri yasamamak icin bu eklentiyi kurmamiz gerekli. Lutfen yukaridaki guncelleme tarihinden once bu dokumani kullananlar mod_rpaf kurulum kismini uygulayarak sunucularini guncellesinler.

Yeni guncelleme: Birden fazla ip li ve degisik ipdeki domainler icin duzenleme. Eger her domaine farkli ip atiyorsaniz, bu ayari yapmaniz yerinde olacaktir. bunun icin 4:a kismini uygulamaniz yeterli olacaktir.

Vatana millete hayirli olsun) :)

Kategoriler
Linux Web sunuculari Nginx

Centos/Cpanel sunucularda nginx kurulumu – 2

Bu Dokuman daha once hazirladigim Centos ve cpanel sunucularda nginx kurulumu dokumuninin guncel ve kolay halidir. Kullanimda yada kurulumda karsilastiginiz sorunlari bu konu altindan belirtirseniz o yonde guncellenecektir..

Kategoriler
Nginx Sunucu Yönetimi Web Server Webmaster yardım

Centos ve cpanel sunucularda nginx kurulumu

Bu dokumanin daha guncel ve kolay anlatimi icin buraya bakabilirsiniz: Centos/Cpanel sunucularda nginx kurulumu – 2

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.