Nginx, Apache'de ne eksik?


11

Nginx'in Apache'den çok daha kaynak verimli ve yapılandırması daha kolay olduğu söyleniyor. Bir arkadaşım bana "Apache'nin yapabileceği bazı şeyler yapamaz, ama yine de bunlara ihtiyacım yok" dedi.

Yine de merak ediyorum: Nachex'in yapamayacağı Apache ne tür şeyler yapabilir? Kapsamlı bir listeye ihtiyacım yok, sadece Apache'nin daha iyi bir seçim olacağı senaryolar hakkında genel bir fikir.

Yanıtlar:


9

Nginx'te hala eksik olan en büyük parçaların tam WebDAV desteği olduğunu düşünüyorum. Hemen hemen tüm diğer yönler çekirdek veya 3. taraf modülü tarafından kapsanmaktadır.

Nginx mod_php gibi şeyleri tasarımla desteklemediğinden, Nginx'in bu parçaları eksik olduğunu söyleyemeyeceğinizden emin değilim. Daha çok Nginx'in bunu zor kullanarak size aptal olduğunu söylüyor gibi.


+1 Mod_php ve bunun gibi şeylerin her türlü kullanımının "aptal" olduğuna katılmıyorum, gerisini kabul ediyorum.
Chris S

Bu bir php-hater yorum mu veya mod_php hakkında gerçekten doğal olarak kötü bir şey var mı? Bağlantı? Soruyorum çünkü sahip olduğum hemen hemen her şey mod_php kullanıyor ve lütfen, neyin daha iyi olduğunu düşündüğün umrumda değil, sadece mod_php ile ilgili sorunun ne olduğunu bilmek istiyorum
Safado

3
mod_php'nin PHP'nin kendisi ile ilgisi yoktur. PHP'nin Apache ile etkileşimi ile ilgilidir. Sorun, PHP'yi Apache içine gömdüğünüzde, PHP'yi işleyen işlemin ve 2kb'lik bir görüntü dosyasını işleyen işlemin aynı işlem olmasıdır. Son istemci yavaşsa, çok pahalı işleminiz 2 saniye boyunca küçük bir görüntü sunabilir, bu da PHP'de harcayamayacağı zamandır.
Martin Fjordvald

+1 "Bu daha çok Nginx'in bunu zor kullanmanın aptalca olduğunu söylüyor."

4

Apache, Nginx ile mümkün olmayan bazı dağıtım senaryolarına izin veren çok sayıda modüle sahiptir.

mod_dav_svnSubversion'ı HTTP üzerinden barındırmak buna bir örnektir . Öyle sadece Apache için kullanılabilir. Dikkate değer diğer örnekler mod_perlveya mod_php. Geleneksel kurulumların çoğu FCGI (veya WSGI veya yolcu) aracılığıyla da yapılabilirken, örneğin web sunucusu içinde özel kimlik doğrulama şemaları (örneğin, git veya svn barındırma için yapıldığı gibi) uygulamanız gerekiyorsa, gerçek bir tercüman işlemesi yararlı olabilir. Redmine / ChiliProject).

Genel olarak, arkadaşınız haklıdır: en yaygın dağıtım senaryoları da nginx ile çözülebilir, ancak bazı "özel" şeyler oluşturmak zorunda kalırsanız Apache daha esnektir.


3

Hikayenin kısa versiyonu Apache'nin etrafında birçok eklenti ve topluluk var. Nginx, nispeten kısa bir süredir ortalıkta ve bu yüzden henüz topluluk kodu tabanına sahip değil.

İnsanlar bana farkın ne olduğunu sorduğunda, Nginx bir biftek bıçağıdır, çeşitli kullanımlar için iyidir ve bazı şeyleri son derece iyi yapar. Apache bir İsviçre Çakısı, tonlarca farklı özelliği var ve hepsini gayet iyi yapıyor.


Nginx'in neler yapabileceği konusunda biraz modası geçmiş olabileceğinizi düşünüyorum, bazı bölgelerde Apache'den çok daha yönlü. HTTP / 1.1 proxy'si ve WebDAV'ın eksikliği Eksik olduğu pek çok şeyi düşünemiyorum.
Martin Fjordvald

@MartinFjordvald Nginx'in bilerek yapmamayı seçtiği birkaç işlev var, "eksik" olduklarını söyleyemezsiniz, ancak Nginx'in Apache'nin de yapabileceği her şeyi yapabileceğini iddia edemezsiniz. Bu bir ödün ve ben yaptıkları seçimler için Nginx'i alkışlıyorum.
Chris S

Orijinal yorumum HTTP / 1.1 proxy'im artık desteklendiğinden, webdav ve svn barındırma desteklenmiyor. Bu, dinamik olarak bağlı modüller gibi sorunları dikkate almazsak, bu da nginx'in şu ana kadar yapmamaya karar verdiği doğrudur.
Martin Fjordvald

1

Birçok modül ve başlangıç ​​için devasa bir kurulum tabanı. Ama değil tam olarak ne Apache vardır bakıyorsun gerektiğini, Apaçi nedir yapar : bu şekilde daha iyi vs. PHP, Python, Perl, Java, gibi dinamik içerik sunmak için çalışır

Tabii bunu Nginx ile de yapabilirsiniz (ama biraz hackish IMHO), ancak çözümler Apache'de NginX'e göre çok daha kanıtlanmış ve olgun çalışıyor, bu da yüksek yükler ve mükemmel bir hizmette Apache'den çok daha iyi yeniden yazma / ters proxy.

Her iş için doğru araç!


Belki nginx'i bir üretim web sunucusuna ilk kez dağıttığımda 2008'den önce doğruydu, ama şimdi öyle görünmüyor. Apache'nin yorumlayıcıları web sunucusuna dahil etme modelinin neden daha iyi olduğuna inandığınızı görmek isterim.
Michael Hampton
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.