2012-06-26 19 views
22

Bazı Django projelerim için nginx + fastcgi (manage.py runfcgi ...) ürününü kullanıyorum. Bir çok insan nginx + gunicorn'u kullanmayı önerir. Django'nun fastcgi sunucusunu kullanmak yerine gunicorn kullanmanın avantajı nedir?Django'nun fastcgi sunucusunun kullanmanın dezavantajı nedir?

+0

Ayrıca, uwsgi'ye bakın. –

+1

FastCGI 1.7 sürümünden bu yana geçersiz kılındı: FastCGI desteği kullanımdan kaldırıldı ve Django 1.9'da kaldırılacak. Bu yüzden uWSGI'ya gitmenizi öneririz. – ashish

cevap

28

Ben sadece WSGI benzeri sunucularını kullanmak gerekir neden söyle :) ama fcgi kullanarak memnunsalar - sadece kullanmak o

Kısa cevap

: (protokolü gibi) WSGI serin its native

çünkü

Veya "Daha derin gitmem gerekiyorsa" (c)

Sonraki soru "FastCGI vs WSGI-like servers?" Burada

Bazı cevaplar: gunicorn, uWSGI ve cherokee, nginx Hakkında

. Onları karıştırmayın!

nginx, http isteklerini işleyen ve WSGI arka ucuna gönderebilen web sunucusudur. (Ama her şeyden önce, statik içerik yönetimi için aşırı hızlıdır.) Ve WSGI arka ucu size django uygulamasında işlem yapar.

Cherokee hakkında, bence nginx ile aynı görevleri yerine getiriyorum ama bununla çalışmıyorum.

Ve gunicorn, uWSGI hmmm many other tasks

Ve Django uygulaması ile konuları çalıştırmak ve yapılacak WSGI arka uç, gunicorn say

olduğunu, tek boynuzlu at kuvvetle sadece Unix benzeri platformlarda çalışan bir sunucu konumundaki vardır Bir şeyi yapmanın Unix felsefesine bağlı ve (umarız) bunu iyi yapıyor. HTTP kullanılmasına rağmen, tek boynuzlu at kesinlikle Rack tabanlı Ruby uygulamaları çalıştırmak için bir backend uygulama sunucusudur. Benim django için pratik

+ (Debian ahır itibaren) uWSGI (nginx.org repo en son kararlı) nginx apps - mükemmel çalışıyor :)


18.05 düzenlenebilir.2012

Bağlantı (dişli) fcgi gunicorn uWSGI

fcgi 640 r/s

fcgi (prefork 4 işlemciler) 240 r/s (*)

gunicorn karşılaştıran ile konu 2010 (2 işçi) 1100 r/s

gunicorn (5 işçi) 1300 d/s

gunicorn (10 wo rkers) 1200 d/s (?)

uwsgi (2 işçi) 1800 Boş r/s

uwsgi (5 işçi) 2100 d/s

uwsgi (10 işçi), 2300 r/s

+7

"FastCGI ile WSGI" yanlış bir sorudur. FastCGI bir ağ protokolüdür ve WSGI bir Python çağrı sözleşmesidir. [flup] (http://trac.saddi.com/flup) bir FastCGI-WSGI ağ geçidine sahiptir. Django’nun “runfcgi” komutu aslında flup’a dayanıyor ve bu yüzden WSGI kullanıyor. Daha iyi bir soru, flug vs uwsgi veya flup vs. gunicorn'dur. –

+0

"FastCGI ile WSGI" hakkında haklısınız. WSGI benzeri konu olarak değiştirin. Ve ben savaşı fluh vs uwsgi vs gunicorn 'uWSGI kazanmak düşünüyorum. Yakında bazı kanıtlar vermeye çalışacağım. – nk9

+3

Eh, kim "kazanır" senin kriterlerin ne olduğuna bağlı. Düşük trafikli bir düzine siteye ev sahipliği yapıyorum, bu yüzden bakım kolaylığı ve bellek kullanımı daha önemlidir * benim için * (yani veritabanı sorguları tarafından domine edilen) ham performanstan daha fazlasıdır. Uwsgi debian sıkışıklığında paketlenmez (mevcut kararlı) Flup ve gunicorn ise. –

4

B1 söylediği gibi WSGI (this post bakmak) yerli (* Bu zaman çatıdan CPU olarak bilgisayarım derece halsiz yapılan).

Ayrıca, this post da benzer bir soruyu içermektedir.

Kişisel bakış açımdan, bir süre önce sunucumda çeşitli projeleri çalıştırmak için Nginx + uwsg in vhost mode kullanıyordum.

+0

... ve uWSGI'nin zerg modu var^_ ^ – nk9