Birincil web sunucusu olarak nginx kullanmanın olumsuz yanları nelerdir?


12

Apache ile birlikte çalışan proxy sunucu olarak nginx kullanan milyonlarca web sitesini gördüm. Ancak nginx'i sadece varsayılan web sunucusu olarak çalıştıran çok az sunucu gördüm. Bu yapılandırmanın ana dezavantajları nelerdir?

Bazılarını görebiliyorum:

  • .Htaccess gibi dizin başına yapılandırma dosyalarının kullanılamaması, böylece her yapılandırma değişikliğinin ana sunucu yapılandırma dosyasına yapılması gerekir ve sunucunun yeniden yüklenmesini gerektirir. Ancak pecl htscanner php ayarları için bunları telafi edebilir
  • Nginx için mod_php'nin kullanılamaması, örneğin php-fpm ile telafi edilebilir.

Diğerleri neler? Neden insanlar sadece Apache'yi bırakıp nginx veya başka hafif bir çözüme geçmiyor? Bazı özel nedenler olabilir mi?

EDIT: Bu soru öncelikle LAMP yığını ile çalışma ile ilgilidir.


1
Mindshare, atalet, yatırım. Her zamanki gibi.
Ignacio Vazquez-Abrams

Nginx'i yeni bir sunucuya kurmak için ne yatırım gerekiyordu? Ücretsiz açık kaynaklı yazılımdır.
Vladislav Rastrusny

3
Araştırma, yerleştirme, test etme vb. İçin gereken zaman yatırımı
ThatGraemeGuy

Miktar hakkında konuşursak, IMHO'nun en büyük nedeni Apache kullanan çok sayıda paylaşılan ana bilgisayar. Nginx'i paylaşılan bir hizmet olarak ayarlamak (örneğin, cPanel, Plesk, vb. Gibi), özellikle son kullanıcı kullanıcıları için Apache ile aynı şeyi yapmak kadar kolay değildir. Ve tek bir site çalıştıran ve sadece kolaylık, aşinalık ve düşük kurulum maliyeti nedeniyle cPanel / Plesk / etc kullanan birçok özel sunucu biliyorum.
Halil Özgür

Yanıtlar:


9

#Nginx deneyimlerime göre neredeyse her zaman Apache .htaccess dosyalarına aşinalık ve bunu kaybetmek istememe veya buna bağlı olarak başka bir şey yüzünden. Örneğin, paylaşılan sunucu barındırma çalıştıran ve yalnızca statik dosyaları boşaltmak ve kullanıcılarının kandırmak için apache tutmasını isteyenler.

Ve dürüst olmak gerekirse, Apache'ye proxy uygulamak için son kullanıcılar için .htaccess tutmak dışında başka bir neden düşünemiyorum.

Düzenleme: Aslında paylaşılan ana bilgisayarlar için mod_php artı phpsuexec Apache ile yapışmanın başka bir nedeni olabilir.


Deneyimlerime göre, apache2'nin ajp-worker'ı yüksek basınç altında oldukça hızlı olduğu için nginx aracılığıyla tomcat'ten iyi performans elde etmek oldukça zor. Nginx'in deneysel bir ajp13 uygulaması olduğunu biliyorum, ancak kararlı ve zayıf bir şekilde belgelenmedi.
pauska

1
Bu çok mümkün. Nginx en iyi fastcgi veya HTTP 1.0 ters proxy olarak çalışır. Scgi, wsgi vb.
Martin Fjordvald

BTW, mod_php suexec ile çalışmaz. Suexec cgi uygulamaları içindir.
Vladislav Rastrusny

İşte böyle, gerçek bir neden yok. Apache'yi artık hatırlamak için çok uzun zamandır bir nginx kullanıcısı oldu. : D
Martin Fjordvald

6

Apache'nin iyi çalışmasını sağlayabilecek bir grup insanınız varsa, neden tamamen yeni bir uygulama ve yapılandırmayı yeniden öğrenmeyi, mod_rewrite kurallarını geçirmeyi, mod_perl / php / etc yapılandırmalarını tekrar yapmayı, yeniden test etmeyi, yeniden konuşlandırmayı zahmete sokun?

Her iki yazılım yığını da ücretsiz olabilir, ancak "yeniden eğitin, yeniden geliştirin, yeniden test edin" değildir ve kullanıcıların uğruna bir şeyler yapmak yerine takılmak yerine 1'in önem verdiği özellikleri eklemenin zamanı gelmiştir .

1 Açıkçası orada kişisel projelerden bahsetmiyorum.


2

Nginx'i seviyorum, ancak iki şey web sitelerim için kullanmamı engelliyor.

  • PHP-FPM'yi kurmak zor . Henüz en son PHP sürümü ile bunu başaramadım.

  • Nginx, içinde bulunduğum HTML5 Web Soketleri'ni desteklemiyor.


1
Nginx ve php-fpm ile yaşadığınız zorlukları adlandırabilir misiniz? HTML5 WebSockets hakkında, Apache henüz sahip değil gibi görünüyor: issue.apache.org/bugzilla/show_bug.cgi?id=47485
Vladislav Rastrusny

Ben de php-fpm sorunlarını bilmek istiyorum. PHP'yi kaynaktan olmadan derleyebiliyorsanız, bunu yapmak da çok basittir.
Martin Fjordvald

1
5.3 şubesi zaten içeride, bu yüzden sadece ./configure --enable-fpm ve işiniz bitti.
Vladislav Rastrusny
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.