Hangisi Django için en iyisidir? Lighttpd veya Nginx? Ya da belki başka bir şey? [kapalı]


18

Deneyiminize dayanarak, Django için daha uygun olan Lighttpd ve Nginx'ten hangisi? Her ikisini de kullandım ve neredeyse hiç fark göremiyorum, sadece iyi çalışıyorlar ... Birinin diğerinden daha iyi davrandığı herhangi bir kullanım durumu var mı? Yanıtlarken lütfen hem yapılandırmanın basitliğini hem de verimliliği dikkate alın.

Her zamanki kurulumum, ./manage.py runfcgi daemonize=false port=8098 host=127.0.0.1daemontools veya bir init.dkomut dosyası ve ters proxy olarak çalışan hafif / nginx ile ayrı bir Django FCGI işlemine (gibi ) başlamaktır .

Oh, ve Django için başka bir http sunucusunun Lighty ve Nginx'ten çok daha iyi olduğunu düşünüyorsanız, lütfen düşüncelerinizi paylaşmaktan çekinmeyin.


Bir fastcgi hizmeti ölürse, daemontools denetimi beş saniye içinde yeniden başlatır, böylece hizmet yedeklenir. Ama hala orada küçük bir kesinti süresi var. Konuşlandırmamda fastcgi'nin hafif baskı altında beklenmedik bir şekilde kırılgan durduğunu gördüm. Müşterilerden gelen birkaç kesinti ve birkaç garip telefon görüşmesinden sonra, Nginx'i proxy'yi Apache mod_wsgi'ye tersine çevirdim ve her şey o zamandan beri uğultu.

Yanıtlar:


14

Hem Nginx hem de Lighttpd, Django, Rails vb. İçin ters proxy olarak kullanıldığında apache'den daha iyi seçimlerdir. Her ikisi de FastCGI ve Http proxy'sini destekler. Her ikisi de verimli kaynak kullanımı için tek iş parçacıklı select () (veya daha iyi) tabanlı bir model sunar.

Ancak oyum Nginx'e gidiyor, çok aktif bir kullanıcı tabanına sahip (şu anda Ruby on Rails setinin sevgilisi) ve aktif geliştirme aşamasında. Lighttpd, 2 yıldan fazla bir süredir öldüğü için yanlış olabilir ve hala 1,5 beta bekliyor.


7

mod_wsgi, Django uygulamasını üretime almak için tavsiye edilen bir yöntemdir. Apache'nin mod_wsgi'si nginx'ten çok daha iyi. Nginx mod_wsgi için resmi paketi (mevcut Linux dağıtımlarında) bulamıyorsunuz ve kendiniz derlemeniz gerekiyor. Ben nginx seviyorum ama güvenli oynamak istiyorsanız, Apache mod_wsgi ile oynamak.


2
Nginx mod_wsgi kullanmak istediğiniz bir şey değildir. Nginx, dinamik içerik sunmak ve dinamik oluşturmak için Apache mod_wsgi'ye ters proxy sunmaktır. Hem dinamik sayfalar oluşturmak hem de statik içerik sunmak için zaman uyumsuz web sunucusu kullanmak istemezsiniz. Apache mod_wsgi tek başına da pek mantıklı değil. Bu canavarı ağır dosyaların kaldırılması gerekiyorken statik dosyaların etrafına püskürtmekle meşgul olmak istemezsiniz. Daha fazlasını buradan oku b-list.org/weblog/2008/jun/23/media

5

mod-wsgi, django uygulamalarını üretimde çalıştırmanın en iyi yoludur, fastcgi'den daha az uğraştır ve başlatma süreleri vb.

Gerçek mod-wsgi apache içindir, ancak nginx için başka bir mod-wsgi var. Apache bir parlak, nginx one hakkında yorum yapamam.

Şahsen, lighttpd'den uzak dururdum. Nginx'in kararlılığı yok, henüz bellek sızıntısı olmayan bir lighttpd vakası görmedim.

Temel olarak, ilk seçimim apache 2.2, ikinci seçimim nginx olurdu.

Tepki süresi ve ölçeklenebilirlik konusundaki aldatmacaya inanmayın. Gerçek şu ki, önemli değil. (Google Apache kullanır).


Google, Apache yerine GWS ( en.wikipedia.org/wiki/Google_Web_Server ) kullanır . Yahoo Apache kullanıyor, ancak 1.3 eski bir çatal.
Dave Cheney

YouTube lighttpd kullanıyor veya en azından kullanılmış, bu yüzden çok kötü olduğunu düşünmüyorum. Bkz. Highscalability.com/youtube-architecture .
Cristian Ciupitu

Evet, ancak GWS gizli bir proje olsa da, Apache'ye dayandığı biliniyor.

YT'nin söylemediği şey, kendi çatallarının hafif olduğudır. Gerçek aydınlık iyi bilinen bir bellek sızıntısı sorununa sahiptir. Şimdiye kadar çözmüş olabileceklerine inanıyorum, ancak temsilci devam ediyor.
Abhishek Dujari

2

Ayrıca, Google App Engine'i kullanmayı düşünün. Django projenizi orada ücretsiz olarak barındırabilir ve sunucu altyapısını koruma konusunda endişelenmenize gerek yoktur.


8
GAE üzerindeki Django, Django'nun datbase / ORM özelliklerinden hiçbirini desteklememek gibi önemli sınırlamalara sahiptir. İhtiyacınız olanı destekliyorsa, harika - ama dikkatlice kontrol edin!

MySQL'in GAE tarafından desteklendiğine inanıyorum, bu yüzden ORM'nin de olacağını tahmin ediyorum. Her ne kadar doğru olsa da denemek için hiçbir deneyimim yok. ORM'siz Django, selsiz porno gibidir.
Abhishek Dujari
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.