Makale yazıları Vücudum köle olsa da düşüncelerim özgürdür.
Makaleci olmak icin bir yerden baslaman lazim!
1 Yıldız2 Yıldız3 Yıldız4 Yıldız5 Yıldız (2 inceleme, ortalama: 5,00)

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

CentOS 6

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

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:

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)

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/

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:

Sonrasinda mod_rpaf kurulumu kurulumunu tekrar bastan yapin..

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

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.

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:

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:

Nginx başlat:

Lazım olabilecekler:
Nginx yeniden başlatma:

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:

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

sonrasinda nginx e restart atalim:

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

Benzediğini sandığımız konular:

  1. Centos/Cpanel sunucularda nginx kurulumu – 2 Bu Dokuman daha once hazirladigim Centos ve cpanel...
  2. Centos ve cpanel sunucularda nginx kurulumu Bu dokumanin daha guncel ve kolay anlatimi icin...
  3. Nginx upload limiti sorununa çözüm (413 request entity too large) itiraf etmeliyim nginx suana kadar kullandigim en iyi...
  4. eAccelerator Php Optimizer (Hızlandırıcı) Kurulumu! [Centos/Fedora] Sunucumuzda calisan php uygulamasi icin optimize edici ve...
  5. phpize kurulumu (phpize: command not found) Bazi uygulamalarin kurulumunda phpize‘ye gerek duyulur. Eger hata...

Yazar Hakkında: selçuk KILIÇ (503 Yazısı bulunuyor)

Bende 1 yumurta var, sende 1 yumurta var. Ben sana 1 yumurta versem, sen bana bir yumurta versen, bende 1 yumurta sende 1 yumurta olur.Bende 1 bilgi var, sende 1 bilgi var. Ben sana 1 bilgi versem, sen bana 1 bilgi versen, bende 2 bilgi, sende de 2 bilgi olur - Konfüçyüs Diğer bütün yazıları, selçuk KILIÇ
Makale yazıları (Makale yazıları), Creative Commons Attribution 3,0 Amerika Birleşik Devletleri Lisansı altında lisanslanmıştır..Sitedeki bütün yazılar Makale yazıları'a aittir. izni olmadan ve kaynak belirtilmeden kesinlikle kullanılamaz. Makale yazıları.
Eklenme tarihi: 14/11/11 - 1:26
Kategorisi: Centos hakkında, Nginx, Plesk
Etiketler: , , , , , , , ,

50 Yorum “Centos/Plesk panel sunucularda nginx kurulumu!

  1. Selçuk kardeşim anlatımın on numara olmuş. Makalenin eski haline göre nginx i kurmuştum.

    Bir şey merak ediyorum. Bu bilgi yarışmaları oluyor bizde sitemize ziyaretçi gelsin diye bilgi yarışmasında sorulan soruların cevaplarını sitemize açıyoruz.

    Ama bi yığılıyorlar millet merak ediyor bi an 3000-5000 kişi geliyor nginx kilitleniyor :)

    Acaba ayar dosyasında hangi değeri artırmamız lazım, RAM konusunda sıkıntı yok. Optimize etmek istiyorum ama default ayarları bozmak istemiyorum bilmediğim için…

    worker_rlimit_nofile 4096;
    worker_connections 1024;

    burdaki ayarı mı artırmak lazım ki?

  2. ssl sorununu hallettim. Şimdi benim vpsdeki siteler şu sekilde:

    a sitesi: m ipsinde,
    diğer bütün siteler n ipsinde.

    Ben /var/www/vhosts/DOMAİN.COM/conf dosyalarını bütün domainlerde değiştirdim. Fakat bütün siteler a sitesine yonleniyor. Sadece a sitesi açılıyor. bu sorunu cozemedim.

    • Nginx tarafli sitelerinizi tanittinizmi peki ? plesk panellerde otomatik bu olusturulamiyor malesef, siz el ile her site icin tek tek tanimlama girmeniz gerek, yukarda bu konudan bahsettim. Her site icin yukaridaki: /etc/nginx/conf.d/default.conf anlatim kismindaki gibi kalip ayar kodlarini alt alta girmeniz gerek. Yani her sitenizi burdaki tanimlamalara uygun sekilde duzenleyip eklemeniz ve sonrasinda nginx’e restart atmaniz gerek..

      • Evet her site için o dediğinizi yaptım. default.conf içerisine her site için verdiğiniz o kodu alt alta yapıştırdım ve domainleri girdim. iplerine de dikkat ettim. Yarın daha detaylı olarak bakacağım. Yardımlarınız için çok teşekkür ederim. Yaklaşık 5-6 aydır nginx kurmaya çalışan biriydim fakat bir türlü becerememiştim. sizin bu makaleniz sayesinde kurdum ve çalıştırabildim küçük bir sorun da olsa… Bu sorunu da yarın inşallah çözeriz. Tekrar tekrar çok teşekkür ederim yardımlarınız için.

  3. Hocam bütün dediklerinizi aynen yaptım. hata mı yaptım diye tekrar bastan yaptım ama 2 site hariç diğerleri açılmıyor.

    Yani;
    a sitesi m ipsinde
    diger sitelerin hepsi n ipsinde.

    Diğer sitelerin biri hariç hepsi a sitesine yönleniyor. Sabahtan beri bu işle meşgulüm ama bir türlü çözemedim.

  4. Hocam bir türlü çalıştıramadım bütün siteleri. aynen dedigini gibi yaptım. ilk 2 sitenin conf dosyasını değiştiriyorum üçüncü sitenin conf dosyasını değiştirince httpd sercice restart komutunda şu şekilde bir uyarı veriyor.

    Starting httpd: [Tue Jan 31 01:21:24 2012] [warn] VirtualHost 31.169.84.17:8080 overlaps with VirtualHost 31.169.84.17:8080, the first has precedence, perhaps you need a NameVirtualHost directive

    1′den fazla site çalıştırabilen varmı ?

  5. Sizi burda gordüğüme sevindim.
    nginx ile vbulletin 4 forum kullanıyorum

    fakat yolunda gitmeyen birşeyler var. online sayısı onceden forumda 600lerde gosterirdi şimdi 200 civarında gosteriyor. (yanlış anlaışması siteye girilmiyor demiyorum hit her zamanki gibi geliyor fakat online sayısı farklı gosteriyor)

    mesaj yazma editoründe hiçbir buton gorünmüyor. orası bomboş. (vbulletin 4)

    Kullanıcılar sürekli 5 hatalı giriş yaptınız 15 dk bekleyiniz hatası alıyor (ben dahil)
    online listesinde bütün kişilerin ipsi aynı gorünüyor. (5 hatalı giriş yapma meselesi bundan kaynaklı herkesin ipsi aynı gorünüyor.)
    Sizce bunlar neden?

    • Sunu uygulayip nginx ve apache ye restart atin:

      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

      kurulmaz ise once bunu yapin, sonra tekrar yukardakileri yapin:

      yum install httpd-devel gcc

      Ardindan httpd.conf dosyasina asagidakileri 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.)

      apache plesk de denemedim ama sorununa cozum olabilir, olmazsa tekrar yaz bana.

      bu arada resmlerin gorunmemesi sorununun sebebi yukaridaki dokumandaki en son chmo islemi olabilir. Genelde bu yuzden resimlerde sorun cikabiliyor.

  6. LoadModule rpaf_module modules/mod_rpaf-2.0.so
    RPAFenable On
    RPAFproxy_ips 127.0.0.1 ip ip2
    RPAFsethostname On
    RPAFheader X-Forwarded-For

    bunu da httpd.conf ‘a ekleyince service httpd restart edince şu hatayı veriyor:
    Stopping httpd: [FAILED]
    Starting httpd: httpd: Syntax error on line 988 of /etc/httpd/conf/httpd.coannot load /etc/httpd/modules/mod_rpaf-2.0.so into server: /etc/httpd/moduld_rpaf-2.0.so: cannot open shared object file: No such file or directory

  7. Dediğiniz gibi kurdum ve online listesinde ip’ler artık farklı gorünüyor. sorun çozüldü. Allah razı olsun.

    Şimdi tek bir sorun kaldı. Ona da çozüm bulursam nginx kullananlar klübüne girmiş olacağım.

    Vbulletin 4 mesaj editoru normalde şu şekilde gorünmesi lazım:
    http://ressim.net/b/out.php/i5476355_2-png

    Fakat nginx ile şu şekilde görünüyor:
    http://ressim.net/b/out.php/i5476354_1-png

    vbulletin 4 editor olarak tiny editor kullanıyor.
    Bu sorun neden kaynaklanabilir ve nasıl çozebilirim :)
    Yardımlarınız için teşekkürler.

  8. 8080 yazınca çalışıyorsa bu ajax çalışıyor!!!. diye düşündüm. Bir den aklıma esti sayfanın kaynak kodlarına bir bakayım diye. kaynak kodlarında 8080 sayısını aradım 1 tane çıktı:

    var AJAXBASEURL = “http://www.site.com:8080/forum/”; :)

    vbulletin 4 editor sorunu yaşayanlar için çozüm:

    headinclude templatesinde şu kodu ara:

    var AJAXBASEURL = "{vb:raw ajaxbaseurl}";

    şununla değiştir.

    var AJAXBASEURL = "http://www.domainadresi.com/forum/";

    forum klasoründe değilse forum yazısını silin. yani şu şekilde:

    var AJAXBASEURL = "http://www.domainadresi.com/";

    apache ile sürekli kasılan ve kitlenen site şuan gayet stabil çalışıyor. Oncelikle bu anlatımı yapan selçuk abiye çok Teşekkür ederim. Şimdi artık sıra nginx konfigirasyonunu geliştirmeye geldi. Bu konuda selçuk abiden makalelerini ve desteklerini bekleriz. Nginx geliştirilmeye çok açık. Belki şuan kullandığımız konfigirasyonları zamanla geliştirirsek siteleri 2 kat daha stabil çalıştırabiliriz. Tekrar teşekkürler kolay gelsin.

  9. Ustam yukarida yazdiklarini uygulayarak nginx denen seyi serverime sorunsuz kurdum. Bu makale icin tesekkür ediyorum.
    Fakat bir kac sorun ortaya cikti. Kurduktan sonra ilk sorun su oldu;
    Serverde iki tane domain vardi. Ikisi de ayni IP’yi kullaniyor. Fakat ben ikisini de ayri klasörlere kurdum ve pleskten yönlendirme yapmis, sitelere böylelikle sorunsuz erisiyordum. Ngingx kurunca önce siteler gitti. Resimler falan cikmadi, templateler cikmadi vs. Sonra baska bir forumda bir cözüm buldum. Buraya da ekleyeyim;

    sh nginx.sh
    service nginx stop
    service nginx start

    bu komutlari uyguladim. Site yerine geldi. Fakat her iki domain de ayni yeri görüyor. Yani A sitesini. Halbuki yukarida da anlattigin gibi alt alta yapmistim. Sonra birini sildim, conf klasörünü de eskisi gibi yükledim. Yine ayni. Sonra ayri bir klasör acarak siteyi yeniden kurmayi denemeye kalktim. Bu defa filezilla calismadi. Dosyalari göremedi ve yükleyemedi. Tüm fonksiyonlari kayboldu. Sonra ssh ile winscp programini calistirdim ve onunla yükledim. Install etmeye kalktim önce Bad gateway dedi, sonra kalsörlere falan izinleri actim, bu defa da bulunamadi hatalari verdi.
    Tekrar plesk panele döndüm ve yaptigim yönlendirmeyi kaldirdim, siteyi yine eski klasörüne yönlendirdim. Fakat sitenin yerinde su an yeller esiyor. Bana apachenin sayfasini gösteriyor.
    Bir türlü siteyi geri getiremedim.
    Silmeye kalsam bunu nasil silebilirim veya bunun bir cözümü var mi?

    • Alt alta ekledigin kod kisimlarinda bu vardir: root /var/www/vhosts/DOMAIN.com/httpdocs; # Burda domaine ait kok dizini belirtiyoruz.

      bunu her domaine gore duzenlemen gerekli, yoksa ayni yeri gorecektir iki domaini acmak istediginde.

      yani ikinci domain ayni klasorde farkli bir dosya icindeyse boyle yapman gerekli: /var/www/vhosts/DOMAIN.com/httpdocs/ikinciKILASOR

      eger isin icinden cikamazsan ve sorunu halledemezsen, senin icinde cok onemliyse bana msnden ulas ve server bilgilerini alayim, bugun zamanim olur aksama dogru isini halletmeye calisirim. Ama bunun bir soz olmadigini bilmeni istiyorum, acil isim cikabilir :)

      msn: kuaza@live.be

  10. Bütün dediklerini yaptım. bütün sitelerim 2kr2.com a yönleniyor lütfen yardım et msndeyim dewil_mn@hotmail.com
    apache başlatırken şu hatayı alıyorum

    Starting httpd: [Wed Apr 18 20:30:40 2012] [warn] VirtualHost 176.53.34.51:8080 overlaps with VirtualHost 176.53.34.51:8080, the first has precedence, perhaps y ou need a NameVirtualHost directive
    [Wed Apr 18 20:30:40 2012] [warn] VirtualHost 176.53.34.51:8080 overlaps with Vi rtualHost 176.53.34.51:8080, the first has precedence, perhaps you need a NameVi rtualHost directive

    • Dokumandaki bu kismi yapin: 4:a – Birden fazla IP li domain varsa eger:

      ve butun domainlerinize ait vhost dosyalsini acip portlari dokumanda soyledigim sekilde degistirip apacheye restart atin.

      nginx kod kaliplarinizin dogrulugundan emin olup nginx e restart atin.

      sonrasinda duzelmesi gerek, duzelmezse problemi tekrar yazin.

Bir Cevap Yazın

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

*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

  • Bizi Takip Edin!
  • Anketimize katilin!

    Sizce En Kaliteli Web Tarayicisi Hankisi ?

    View Results

  • incelemeler
  • Resim Galerileri
  • En çok görüntülenenler
  • Son Yazılar
  • Son 5 Yorum




  • Forgot?
    Kayıt Ol



  • 58/0,596