bir süre önce Size bu eğitim dizisinden bahsettim, yüksek talepli barındırma için bir sunucunun nasıl kurulacağı ve yapılandırılacağı hakkında. Bu makale Nginx'in yüklenmesi ve yapılandırılması hakkında olacak:
nginx:
Makalede daha önce size Nginx'ten bahsetmiştik Nginx: Apache'ye ilginç bir alternatif, orada size bunun Apache, LightHttpd veya Cherokee gibi bir web sunucusu olduğunu söylemiştik, ancak Apache ile karşılaştırıldığında performansı ve düşük donanım tüketimi ile öne çıkıyor, tam olarak Facebook, MyOpera.com, DropBox ve hatta WordPress gibi birçok büyük sitenin nedeni de bu. .com Apache yerine Nginx kullanıyor. Linux dünyasında DesdeLinux Nginx kullanan sadece o değil, bildiğim kadarıyla emsLinux ve MuyLinux da kullanıyor :)
Nginx ile olan kişisel deneyimim, zorunluluktan dolayı Apache'ye hafif alternatifler aramaya başladığım birkaç yıl öncesine dayanıyor. O zamanlar Nginx 0.6 sürümüne gidiyordu ve PHP'de yapılan yüksek talep gören sitelerle uyumluluğu en uygun değildi, ancak bugün 0.9 sürümünden itibaren (v1.2.1 Debian Stable'da mevcuttur, v1.4.2 ArchLinux'da mevcuttur), Nginx + PHP'nin uygun bir konfigürasyonu ve birliği ile her şeyin bir cazibe gibi çalışacağı noktaya kadar çok gelişti.
Bu eğitim dizisinde Nginx 1.2.1-2.2 sürümünü kullanacağım, Debian Stable depolarında (Wheezy) mevcuttur.
1. Kurulum:
İlk şeyle başlayacağız, Nginx'i depolarımızdan kuracağız.
Sunucunuzda Debian, Ubuntu veya bir türev gibi bir dağıtım kullanıyorsanız terminalde aşağıdakileri yazmalı ve düğmesine basmalısınız. Keşfet :
aptitude install nginx
Sunucunuzda CentOS, Red Hat, Fedora gibi başka bir dağıtım kullanıyorsanız, sadece paketi kurun: nginx resmi depodan
2. Yapılandırma:
Zaten Nginx'i kurduk, ancak açıkça yapılandırmamız gerekiyor. Sunucularda kullanılan tüm konfigürasyonları içeren, FTP üzerinde sıkıştırılmış bir dosya hazırladım. DesdeLinux, her ikisi de PHP, Nginx vb. için. Bu dosyayı indirip açalım:
cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz
Bu, nginx-spawn-fastcgi adlı bir klasör oluşturacak, ondan saf Nginx için iki dosyaya ihtiyacımız olacak (yani, onu PHP'ye bağlamadan):
- nginx.conf - »Ana Nginx yapılandırma dosyası (içeriği hakkında daha sonra konuşacağız)
- index.html - »Nginx'in bizim için en basit haliyle gerçekten işe yarayıp yaramadığını görmek için kullanacağımız basit bir html dosyası
- mywebsite.net - »Basit bir web sitesi için yapılandırma dosyası, önceki html'ye erişimi yapılandıracak bir VHost (Sanal Ana Bilgisayar)
Önce Nginx ayarları klasörüne geçelim:
cd /etc/nginx/
O zaman varsayılan yapılandırmasını kaldıralım ve kendi yapılandırmamızı koyalım:
mv nginx.conf nginx.conf_BK && cp ~/nginx-spawn-fastcgi/nginx.conf ./
Bu, dediğim gibi, ana Nginx yapılandırma dosyasıdır, içinde aşağıdakileri zaten tanımladım:
kullanıcı www verileri; işçi_işlemleri 4; pid /var/run/nginx.pid;
Dosya sistemine kullanıcı erişimi (nginx'in her yerden erişeceği), çalışılacak işlemlerin sayısı ve ayrıca PID (nginx işlem kimliği).
Ayrıca, olay başına izin verilen maksimum bağlantı sayısını gösteren bir satır içeren olaylar (olaylar için ayarlar) adı verilen küçük bir bloğumuz da var. Aşağıda http adlı blok var.
Bu http bloğu, barındırmayla ilgili hemen hemen her şeyi, en azından ilginizi çekecek birçok şeyi içeren bloktur. Örneğin, genel günlüklerimizin (access.log ve error.log) olacağı maksimum yaşama veya bekleme süresi (zaman aşımı), gzip kullanarak veri sıkıştırma ve gelecekte yararlı olabilecek diğer kurallar.
Ana konfigürasyon dosyası yerleştirildikten sonra, dosyayı VHost'umuzdan sitelerden erişilebilen klasöre kopyalayalım.
cp ~/nginx-spawn-fastcgi/mywebsite.net sites-available/
Ek olarak, bu dosyadan sitelerin etkin olduğu klasöre sembolik bir bağlantı yapmalıyız.
ln -s /etc/nginx/sites-available/mywebsite.net /etc/nginx/sites-enabled/
Sitelerin etkin ve sitelerin kullanılabilir olmasının yararlılığını açıklarım.
Hazır ve yapılandırılmış birkaç vhost dosyasına sahip olmaları gereken anları bulacaklar, çünkü bu sunucuya çevrimiçi olarak koyacaklar, örneğin 5 site. Ancak, bu 2 sanal ana makineden 5'sini etkinleştirme zamanı henüz gelmemiştir, ancak gerektiğinde mümkün olan en kısa sürede çevrimiçi olabilmeleri için dosyaları hazır bulundurmaları gerekir. Nginx'in çevrimiçi koymak için okudukları yalnızca sitelerin etkinleştirilmiş olanları olduğundan, kullanılabilir sitelere istedikleri kadar sankon koyabilirler, çevrimdışı duruma getirmek istemeleri durumunda ters yönde de çalışır (geçici olarak Örneğin) bir site, sunucunuzdan dosya silmeye gerek yoktur (başka bir zamanda ihtiyaç duyacağımız dosyalar), basitçe sitelerin etkinleştirilmiş sembolik bağlantısını kaldırırız ve bu kadar. Sembolik bağlantılara sahip olmanın ve dosyayı bir klasörden diğerine kopyalamamanın faydası, bir sankon düzenlemek istediğimizde, etkin veya kullanılabilir olanı düzenleyip düzenlemememizin bir önemi olmamasıdır, sonunda aynıdır.
Arşiv.
Daha önce de söylediğim gibi mywebsite.net dosyası, örnek olarak hizmet veren bir vhost, yani mywebsite.net'i değiştirmeli ve yapılandırmalarımızı oluşturmalıyız.
Aşağıdakileri değiştirmeliyiz:
- access_log (3. satır): Bu, bu siteye erişim günlüğü dosyasının yolu olacaktır
- error_log (4. satır): Bu, hata günlüğü dosyasının bu siteye olan yolu olacaktır
- sunucu_adı (satır 5): Bu klasörde barındırılan URL, etki alanı; örneğin, eğer forumsa DesdeLinux şöyle olurdu: forum sunucusu_adı.desdelinux. Net
- root (satır 6): html dosyalarının bulunduğu klasörün yolu, bunu / var / www / içinde bırakalım çünkü bu sadece bir test olacak
Şimdi html dosyasını VHost dosyamızda tanımladığımız / var / www / klasörüne kopyalamamız gerekiyor:
mkdir /var/www/ && cp ~/nginx-spawn-fastcgi/index.html /var/www/
Sonra Nginx'i yeniden başlatıyoruz ve işte bu:
service nginx restart
Ve voila, şöyle bir şey görünecek:
PHP desteği olmadan önce HTML için Nginx ile çalıştığımızı hatırlatırım, bu PHP'yi kurun ve onu Nginx'e bağlayın sonraki öğreticinin içeriği olacak (birkaç gün içinde söz veriyorum).
Her neyse, bu Nginx kurulum ve konfigürasyon öğreticisidir, böylece saf, yani bir HTML sitesi çalışır, umarım ilginizi çeker.
Evet, hala kullanılabilecek en iyi uygulamalar olduğunu açıklığa kavuşturacağım, ancak bu eğitim dizisini bitirmek için bekleyelim ve sonra çalışmanın nihai sonucunu değerlendireceğiz 😉
selamlar
Teşekkürler, çok yardımcı oldu!
Yorum için teşekkürler
Arka sporlarda nginx 1.4 var ..
Evet, ancak üretimdeki bir sunucuda bunların hiçbirini kullanmıyorum 😀
"It" ile nginx tarafından yayınlanan en son kararlı ve test edilmiş sürümü kastediyorsunuz, sid'den apt-pinning yapıyormuş gibi ses çıkarırsınız. ~ _ ~
Ah hadi, şu ... sunucularda diğer depoları, arka portları veya bunun gibi bir şeyi kullanmayı hiç sevmedim
Sunucularda her zaman kararlı, bunu yıllar önce öğrendim.
Nginx 1.4, geçtiğimiz Nisan ayından bu yana sabit, arka planda 1.4.1-3.
2013-04-24
1.4.0.x dalında geliştirilen birçok yeni özelliği içeren nginx-1.3 kararlı sürümü piyasaya sürüldü - WebSocket bağlantılarının proxy'si, OCSP zımbalama, SPDY modülü, gunzip filtresi ve daha fazlası için destek.
http://nginx.org/en/CHANGES-1.4
Söylediğin şeyde haklısın, şapkam çıktı.
Paylaştığınız için teşekkürler, şu anda en eski gönderinizi uygulamaya koyuyorum.
Seni sorularla dolduracağım XD
Okuduğunuz için teşekkürler 🙂
Herhangi bir sorunuz veya endişeniz varsa, yardım etmek için burada olduğumuzu biliyorsunuz, forum var.desdelinux.net nerede birlikte size en iyi çözümü sunmaya çalışacağız
selamlar
WordPress ve Owncloud için sunucumda LAMP [Linux (Debian Wheezy), Apache, PHP ve MySQL] çalıştıran bir sorum var, Ngnix'e nasıl geçebilirim, başka bir soru da Ngnix ve Lighttpd arasında ne gibi bir fark olduğu.
Apache'den Nginx'e geçişin en büyük karmaşıklığı veya zorluğu, her sitenin yapılandırmalarıdır, yani özellikle kullandığınız .htaccess.
.Htaccess, Nginx'e geçerken en karmaşık olanıdır, çünkü bunlar Nginx VHost'a koymanız gereken farklı konfigürasyonlardır.
LightHTTPd ve Nginx hakkında… Bilmiyorum, LightHTTPd'yi sadece yıllar önce bir kez kullandım, şu anda özellikle PHP kullanarak geliştirilmesinin nasıl gittiği hakkında hiçbir fikrim yok.
NGINX, Apache'ye kıyasla oldukça basit görünüyor. Bir sonraki bölümün PHP ile tamamlanması bekleniyor
Nginx için daha fazla optimize etmek için ipuçlarını bekliyorum 😀
Bu arada Gaara, bir sonraki eğitiminize SSL desteğinin nasıl uygulanacağını dahil edebilirsiniz.
Selamlar.
Gelen ipuçları aslında PHP işlemeyi, site önbelleğini optimize etmeye yönelik, kullandığımız konfigürasyonun örneğini verebilirim. DesdeLinux Nginx+Wordpress+W3_Total_Cache için :)
Teşekkür ederim iyi katkı
Archlinux rehberi ne zaman? xD
Arch'da çok benzerdi, sadece paketlerin isimleri değişir ama ... conf neredeyse aynıdır
Ama Arch ile üretim sunucusu kimde var? 😀
Merhaba,
Yine benim xD ...
Adımlarınızı onları archlinux'lu bir makinede uyguluyordum ve şu problemim var:
[abr4xas@Genius www]$ systemctl status nginx.service
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)
Active: failed (Result: exit-code) since vie 2013-11-15 20:11:35 VET; 1min 13s ago
Process: 1258 ExecStartPre=/usr/bin/nginx -t -q -g pid /run/nginx.pid; daemon on; master_process on; (code=exited, status=1/FAILURE)
Herhangi bir öneri 😀
Jo… xox, ben sadece dahili bir sunucu istiyorum, yani sadece xampp'i değiştirmek istiyorum, tüm bunları yapmalı mıyım?
İsterseniz bunu uygulayabilirsiniz (tekrar ediyorum, DL'nin çalıştığı şey budur), aslında sanal sunucum (geliştirme ve test için kullanıyorum) açıkladığım aynı şeyi yaptım.
Yani, ya XAMPP'yi kaldırabilir ve bu değişkeni koyabilirsiniz ve iyi çalışacaktır ya da XAMPP'den ayrılmak isterseniz ... sizin için yine de çalışacaktır.
Gösterdiğim bunu kullanmanın olumlu yanı, Apache'ye kıyasla çok düşük donanım tüketimi, ancak yüksek talepli bir barındırma olmayan kişisel bilgisayarınızda bundan çok uzak… XAMPP sizin için iyi çalışıyorsa, ben çalışmıyorum neden kaldırıldığını gör 🙂
Linux sunucum zaten çalışıyor (Debian, Nginx, MySQL ve PHP) PHP'nin Nginx ile çalışmasını sağlamakta zorlandım çünkü basit Apache Web Sunucusuna alışkınım.
Peki sorum şu: Satın aldığım bir test alanını sunucuma nasıl yönlendirebileceğimi bilen var mı? Nasıl çalıştığını görmek için .com alan adımı denemek istiyorum, ancak nasıl yapılacağına dair en ufak bir fikrim yok çünkü ona noip DUC ile erişmek için her zaman bir NOIP adresi kullandım.
Umarım birisi bana yardım edebilir, teşekkürler!
Ftp'nize bağlanmaya çalışırken bunu anlıyorum:
cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz
HTTP isteği gönderildi, yanıt bekleniyor… 404 Bulunamadı
2015-11-23 17:46:30 ERROR 404: Bulunamadı.
Sunucumun CentOS (Gunicorn, Nginx, PHP) üzerinde çalışıyor olması, onları çalıştırmak için bana çok iş mal oldu, ancak takıldığım nokta, başlatmak istediğim Web Sayfasının bu alan adı sağlayıcısının yapılandırmasına ihtiyaç duymasıydı. case Go Daddy, Yani bu noktada nasıl devam edeceğimi bilmiyorum.
İndiremediğim için konfigürasyon dosyalarını benimle paylaşır mısınız lütfen