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?
cevap
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
- Differences and uses between WSGI, CGI, FastCGI, and mod_python in regards to Python?
- What's the difference between scgi and wsgi?
- Is there a speed difference between WSGI and FCGI?
- How Python web frameworks, WSGI and CGI fit together
. 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
"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. –
"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
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. –
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.
... ve uWSGI'nin zerg modu var^_ ^ – nk9
Ayrıca, uwsgi'ye bakın. –
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