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
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) :)
“Centos/Plesk panel sunucularda nginx kurulumu!” için 76 yanıt
Herhangi sorunda yazarsaniz ona gore sorunlar cozup, dokumani iyilestirmeye calisalim arkadaslar. sonraki anlatim directadmin uzerine olacaktir, sevgiler, saygilar :)
Bu dokuman suan itibari ile guncellenmistir: 21/11/2011 19:39 (Bu tarihten once kurulumu yapanlar, tekrar yeniden yapsinlar…)
centos 6 da default editör vim dir. nano pico yok
nano yum ile kurulabilir sanirim, kurulamasa bile vim ayni islevi gorecektir, ancak kullanimini bilmek lazim. Ayrica baslat, kapat haricinde bir cok duzenleme isini winscp programi ile kolaylikla yapabilirsiniz..
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?
Anlik baglanti sayisini burayi artirarak daha da yukseltmenizi oneririm: worker_connections 1024; ornegin anlik 7000 yada 10000 yapabilirsin. anlik aldigin istege gore bir limit belirle :)
Teşekkür ederim tahmin ettiğim gibiymiş. Ben vhost.conf dan sitemin proxy_buffers 256 64k olarak ayarlamıştım. Sanki biraz performans artmıştı. proxy_buffers değeri falan ne işe yarıyor.
Bunların fonskiyonların ne işe yaradığı ile ilgili de bir makale yazarsan tadından yenmez :)
bos bir zamanimda bu konuya da yer verecegim burda :)
Gerçekten güzel bir döküman olmuş, sunucu siparişi verdim geldiği an nginx kuracağım. Umarım sorun olmaz olursada yardımcı olursunuz artık :)
Suphen olmasin, bir yoruma bakar :D
çok saol kardeş sayende sorunsuz kurulum yaptım
çalışmıyor 2 domain ekledim 1.incisinin içeriğini sildiğim zaman diğerininkide siliniyor
Boyle bir sey mumkun degil :) atladiginiz yada yanlis yaptiginiz bir yer vardir illaki. Bir klasoru sildiginizde baska bir yerden silinmesi imkansiz.
msneden yardımcı olursanız sevinirim msn eklerseniz
MAlesef msn den destek vermiyorum, yorum olarak yada yakinda acacagim forumlardan destek alabilirsin.
ikitane domain eklemek için default.conf’a yukarıdaki kalıbı alt alta kopyaladım domainlere göre ayarladım birbiriyle bağlantılı çalışıyor pek birşey anlamadım açıkcası
default.conf la yetmiyor, o domainlere ait plesk konfigurasyon dosyalarinida duzenlemeniz gerekli. Konuda da yazdim, plesk konfigurasyon dosyalarindaki gerekli duzenlemeyi yapmaniz gerekli..
Acaba plesk 10 da ve centos 6 da bu döküman çalışıyor mu?
Calismasi lazim, gereken centos 6 yum nginx rpm dosyasini sunucuya cekmeniz yeterli. Ustde zaten bu konuda bilgi verdim.
Bad Request
Your browser sent a request that this server could not understand.
Reason: You’re speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.
Hint: https://kunfeyekun.org:8080/
boyle bir hata aldım neden acaba. harfiyen uyguladım yazılanları?
Cunku SSL guvenli baglanti yontemi ile baglanmaya calisiyorsun siteye (https). ve bu baglanti bicimi 8080 inci protu desteklemiyor yada desteklemez diye biliyorum. genelde 443 yada kendine has bir portu oluyor, hic calismadigim icin net bir bilgim yok malesef.
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.
Hocam bir de forumda bir kategorinin 2. sayfasına geçince ya da bir konunun 2. sayfasına geçince 404 Not Found nginx/1.0.11 hatası veriyor.
ornek: http://www.kunfeyekun.org/forum/duyurular/index2.html
http://www.makaleci.com/centoscpanel-sunucularda-nginx-kurulumu-2.html/comment-page-1#comment-12179
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.
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ı ?
Bu sorunu çözdüm. httpd.conf dosyasını açarak en alta:
NameVirtualHost ip1:8080
NameVirtualHost ip2:8080
şeklinde ekleyiniz. Makinada kaç adet ip varsa o kadar ekleyin.
hocam ustdeki sorunu tekrar yazdiginizda anlamistim boyle bir seyi unuttugunuzu. Ancak konuya eklemedim fazla onemli degil diye, eklememde fayda olacak, sizin gibi ugrasanlar icin yardimci olacaktir. Sorunu cozup paylastigin icinde tesekkurler, cogu kisi birakip gider :)
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.
/usr/local/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
bunu sshden yazınca şu hatayı veriyor: (bundan onceki adımları yaptım)
-bash: /usr/local/apache/bin/apxs: No such file or directory
bunu denermisin :
cd /usr/local/src/mod_rpaf-0.6/
apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
diger kisimlari httpd.conf a ekle tekrar restart at.
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
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://kuaza.com/b/out.php/i5476355_2-png
Fakat nginx ile şu şekilde görünüyor:
http://kuaza.com/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.
http://groups.drupal.org/node/133429
burda drupalda da ckeditor çalışmamış. Orada birşey anlatılmış ama anlayamadım. Sorunu da halen çozemedim. Vbulletin sitelerinde nginx konfigirasyonlarından kaynaklanan bir sıkıntı olabilir şeklinde yorumlar var.
Selçuk hocam bir duurm tespit ettim belki sorunu çozmede yardımcı olabilir.
domainin sonuna 8080 yazınca vbulletin editor gorünüyor..
yani;
http://www.domain.com:8080/forum/showthread.php?1-denemefdg&p=1#post1
gordüğünüz gibi bu şekilde domainin sonuna 8080 yazınca editor düzeliyor.
bunun sebebi ne olabilir?
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.
Tesekkurler, zamanla daha iyi olacak ins :)
Kurulumu yaptım hiçbir sorun yok nginx de çalışıyor ama WordPress sitemdeki resimler sayfada gözükmüyor sebebi nedir?
location ~* .(gif|jpg|jpeg|png|wmv|avi|mpg|mpeg|mp4|js|css)$ {
bu satırda, açılmayan renkler hangi uzantıda ise onu silin.
Bu kismi uygulamadin sanirim:
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
Sonrasinda resimler gorunmeye baslayacaktir..
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: [email protected]
Hocam aynisini yaptim ama sorun aynen devam ediyor. Isin icinden cikamiyorum. Bu arada msn e de ekledim.
Bütün dediklerini yaptım. bütün sitelerim 2kr2.com a yönleniyor lütfen yardım et msndeyim [email protected]
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.
subdomainler için bir çözüm bulamadım. 404 veya 403 hatası veriyor. default.conf dosyasına nasıl bir ekleme yapmalıyız.
Ayni sekilde kalibi kullanin ve SITEDOMAIN.com kismini SUBDOMAIN.SITEDOMAIN.COM seklinde yapin, bu kadar :)
webmail.DOMAİN.com adresine erişemiyorum. Ne yapmam lazım. üçüncü parti programlar ile (live mail gibi) mailleri okuyabiliyorum ama internetten giremiyorum.
bunun nginx ile alakasi yok, dns ayarlari ile alakasi var. Sunucunuzdaki named programina domainin nslerinin tanimlandigi dosyada webmail in tanimlanip tanimlanmadigini kontrol edin.
404 Not Found
nginx filim ziliyeceğimde böyle bri ayzı cıkıor bunun sebebi neler oalbirli buna diar cözüm nedir acep??
sorunu net sekilde aktarmamissin ama tahminen soyleyeyim, izlemeye calistigin dosya olmayabilir :) yada uzantisi nginx ayar dosyasinda belirtilmemistir.. yada publuc_html nin chmod ayarini yapmadin..
merhaba selçuk bey,
makaleniz için teşekkürler,
sunucumuzu nginx e geçirdik, fakat sitemizde uzun süren sql sorguları var, bu yüzden de “504 & Gateway Time-out” a düşüyor,
proxy_send_timeout 120;
proxy_read_timeout 120;
ayarlarını artırdığım halde yeterli olmuyor, hangi süreyi artırmamızı tavsiye edersiniz.
iyi çalışmalar
Öncelikle uzun süren sql sorgularınız varsa her halükarda yük yine apache ve php üzerinde olacaktır. Nginxin burda bir faydasını göremezsiniz. bunun için cache yapmanızı yada sunucu bazlı bir cache programı kullanmanızı tavsiye ediyorum.
Nginx için ise Şunları bir denermisin:
client_max_body_size 5m;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
connection_pool_size 256;
client_header_buffer_size 4k;
large_client_header_buffers 8 32k;
request_pool_size 4k;
output_buffers 4 32k;
postpone_output 1460;
merhaba selçuk bey,
proxy_read_timeout 120; yi 1600 e çıkartığımda uzun süren sql beklemelerindeki, süreyi çözdü ve time out problemini çözdü, fakat yine post işlemlerinde 100 ü geçtiğinde sonrakileri kesiyor, post limitini belirleyen bir ayar varmı?
teşekkürler,
post içinde bunu dene: proxy_send_timeout ama değerlere dikkat et çok yüksek tutarsanız sunucuyu gereksiz yorarsınız ve o yönde gelen bir saldırıda çok etkilenirsiniz…
merhaba selçuk kusura bakma sana çok soru soruyoruz, ilginize çok tşk. ler,
sunucumda tek ip üzerinde 3 ayrı domain var, 3 ünüde conf yapılanmasına şablondaki gibi ekledim, fakat “NameVirtualHost ip1:8080 “satırını sona eklemeden 2. ve 3. domainde yönlendirme çalışmadı, sonra
NameVirtualHost ip1:8080 eklediğimde, aşağıdaki hatayı alıyorum,
[Tue Nov 13 21:38:09 2012] [warn] NameVirtualHost ip1:8080 has no VirtualHosts
ve belirli bir süre sonra web siteleri çok yavaşlıyor,
ne tavsiye edersiniz.
şimdiden teşekkürler,
Tek ip varsa sadece bir kere eklemen gerek namevirtualhost komutunu. alt taraftada siteleri tanıtırken hepsine aynı ipyi gireceksin. nginx yapılanmasında da ipleri girdiğinde sorunsuz şekilde yönlendirme sağlanmış olur..
Merhaba,
Anlatım için teşekkürler. Kurulumu sorunsuz bir şekilde yapıp siteyi nginx ile çalıştırdım fakat load sürekli yükselmeye başladı. Hiç bir şey eksik değil, kontrol ettim hepsi anlattığınız gibi. Site bir download sitesi ve yüksek hiti var. load büyük ihtimal bu yüzden yükseliyor ama neyden yükseliyor bulamadım. Bu arada paylaşım yapılan dosyalar rar şeklinde sunucudan paylaşılıyor.
rar uzantısı statik dosya olarak sunuluyorsa bunu nginx kolaylıkla işler ve apacheye yük bindirmez. Ancak upload/download’ a izin verdiğiniz dosya türlerini nginx ksite konfigürasyon ayarları kısmında da belirtmeniz gerekli. Aksi taktirde nginx bu dosyalara dokunmaz ve apache tarafından işlenir ki buda loadlarınızın yükselmesinin ana sebeplerinden birisi olabilir..
Ayar dosyasında aşağıdaki gibi bir yer var (nginx):
location ~* .(gif|jpg|jpeg|png|wmv|avi|mpg|mpeg|mp4|js|css)$ {
Burda az öncede yazdığım gibi dosya türlerini belirtmelisiniz. Örneğin ben bir kaç tane ekleyeyim:
location ~* .(gif|jpg|jpeg|png|wmv|avi|mpg|mpeg|mp4|js|css|rar|exe|zip)$ {
Kolay gelsin…
iso ve msi uzantısını unutmuşum, o yüzden load yükseliyormuş. Yine de ftpye bakıyorum eksik bir uzantı olmasın diye. Allah senden razı olsun, bugüne kadar hiç bir anlatımda başarılı olamamıştım. Sayende nginx kurdum ve çalıştırdım (plesk sunucu). Merak ettiğim bir olay da worker_processes olayı. Bu worker_processes ayarını neye göre ayarlıyoruz. İşlemci sayısına göre mi yoksa işlemci çekirdek sayısına göre mi? Benim sunucu özellikleri : İşlemci AMD Athlon™ II X4 (4 Çekirdek) İşlemci sayısı 4x 2.3 GHz Ram 16 Gb (sunucuda tek site)
Son olarak da, sitem anlık 100 ile 250 kişi arası hit alıyor. Nginx konfigirasyon dosyasında ekstra bir ayar yapmak gerekiyor mu, ya da yükseltilmesi gereken bir ayar var mı?
Sorunun düzeldiğine sevindim.
worker_processes: CPU işlemci çekirdek sayısına göre yapılır ve eğer çekirdek sayınız varsa artırmanızı öneririm çünkü nginx kullanılabilir alanları bu şekilde kullanarak ramden ve cpudan daha fazla yardım alır. Örnek kullanım için aşağıdaki ayarı kullanabilirsiniz: (Bu ayarlar performansinizi artıracaktır. eğer kaydetip nginx restart attığınızda hata alırsanız buraya yazın. Bu ayarlar belli bir alan için yüksek olabilir, o alanında yükseltilmesi gerekebilir)
worker_processes 4;
worker_rlimit_nofile 5000;
events {
worker_connections 1000;
}
worker_processes 4; (1 idi 4 yaptım )
worker_rlimit_nofile 5000; (yoktu ekledim)
events {
worker_connections 1000; (1024 idi değiştirmedim)
}
Herhangi bir hata veya olumsuz bir durum ile karşılaşmadım. Performansda gözle görülür bir artış oldu. CPU Load 2.0 ile 10.0 arası gidip geliyordu. Nginx kurduktan sonra 0.40 ile 1.20 arasında gidip geliyor :) Ram 12 Gb’a kadar çıktığını gördüm lakin nginx kurduktan sonra 1Gb’ı geçmiyor :) bu süper :)
Size ne kadar teşekkür etsem azdır. Çok sağolun.
Nginx’i kurunca htaccess’deki hotlink koruması pasif oldu. Daha önceleri de nginx kullandığımda (danginx) hotlink olayına bir çözüm bulamamıştım. Dosyalar sunucuda olduğu için başkaları tarafından da link verilip paylaşılsın istemiyorum. htaccess’de bu olayı çok iyi yapıyordum lakin şimdi bu geçersiz oluyor. Özellikle rar doyalarında hotlink korumasını sağlamam gerekli. Bu konuda da bilginiz var ise yardımcı olursanız çok sevinirim.
Ayrıca nginx ile ilgili hem Türkçe makale hem de nginx hakkında bilgili olan bir Türk bulup cevap almak inanın çok zor :)
Ben her takıldığım yerde sizden yardım almak için yazacağım. Çok teşekkür ederim.
Geri dönüş için teşekkürler. Hotlink koruması için eski tarzın işe yaraması gerekliydi. Çünkü burda anlatılan anlatımla apache nin .hteccess dosyaları ve içindeki kuralları nginx içinde geçerli oluyordu. Problemi tam olarak anlarsa çözümüde illaki bulunacaktır diye düşünüyorum.
Rica ederim, ilginiz için ben teşekkür ederim. Hotlink olayına çözüm bulursam sizinle paylaşacağım.
Bir de RPAFproxy_ips 127.0.0.1 10.0.0.1 (ornek: 127.0.0.1 IP1 IP2 IP3 v.s) sunucuda ekli olan tüm ip adreslerini aralarında boşluk bırakarak yazmanız gerekli demişsiniz. Ben 127.0.0.1 adresini ekledim lakin bu kısma sunucunun dış ip adresini de ekleyecek miyim bilemedim.
Sunucuda ekli olan dış ip dahil sornadan eklediğini iplerin hepsini aralarında boşluk bırakarak ekleyin ve apache ye restart atın. Sonrasında sitenizin ziyaret edenlerin iplerinin kendi ipleri olduklarını göreceksiniz :) belki hotlink olayıda çözülür. Çünkü bunu yapmadığınızda sitenize girenlerin hepsinin ipsi local ip olarak görünüyor.
Çooooooooooook tşk.ler kardeş eline koluna sağlık nasıl iş gördü anlatamam eyw.
çok iyi işime yaradı admin eline sağlık….
hocam sunucuyu kurduk ama nginx’le videoları ileri geri sarmıyor ne yapmamız gerek acaba
Bu ozellik icin sunucuda ffmpeg veya degisik bir program olmasi gerekiyor sanirim. Bende tam emin degilim.
Merhabalar,
Anlaşılır ve Türkçe kaynak için teşekkürler! Bu arada default.conf dosyasında izin verilen uzantılardan dolayı sitenizde bir takım bozulmalar yaşanabilir Selçuk Bey de bahsetmiş zaten ama vurgulamak istedim:
İlgili uzantıyı location kısmına ekleyiniz veyahut aşağıdaki ile değiştirip kontrol ediniz:
location ~* .(gif|jpg|jpeg|png|wmv|avi|mpg|mpeg|mp4|js|css)$ {
yerine:
location ~ \.php$
{
Başarılar..
Selçuk Bey, yazılarınızı zaman buldukça okuyorum. Her konuda yazıp çiziyorsunuz. Bu kadar bilgi birikimini nereden kazandınız? Oyun siteleri hakkında da yazı yazar mısınız?
oyun siteleri ile ilgili konu olursa ve zamanda bulursam yazarim belki :)
Selamlar, Plesk in yeni sürümü için de geçerli midir bu anlatım. 17.5.8