簡體   English   中英

部署Django(fastcgi,apache mod_wsgi,uwsgi,gunicorn)

[英]Deploying Django (fastcgi, apache mod_wsgi, uwsgi, gunicorn)

有人可以解釋守護進程模式下的apache mod_wsgi和線程模式下的django fastcgi之間的區別。 我認為它們都使用線程來實現並發性。 假設我使用nginx作為apache mod_wsgi的前端。

更新:

我正在比較內置fastcgi(./ manage.py方法=線程maxchildren = 15)的django和'daemon'模式下的mod_wsgi(WSGIDaemonProcess示例threads = 15)。 他們都使用線程並獲得GIL,對嗎?

UPDATAE 2:

所以,如果它們都相似,那么apache mod_wsgi對fastcgi有什么好處。 我看到fastcgi的這些優點:

  • 我們不需要apache
  • 我們消耗更少的RAM
  • 我注意到fastcgi的開銷較小

UPDATAE 3:

我現在對nginx + uwsgi很滿意。

UPDATAE 4:

我現在對nginx + gunicorn很滿意:)

兩者都不必使用線程來處理並發請求。 這取決於您如何配置它們。 如果需要,您可以使用多個進程,其中每個進程都是單線程的。

有關mod_wsgi進程/線程模型的更多背景信息,請參閱:

http://code.google.com/p/modwsgi/wiki/ProcessesAndThreading

模型類似,盡管mod_wsgi處理進程管理本身。 就流程管理而言,FASTCGI中會發生什么取決於您正在使用的FASTCGI托管機制,而您沒有說明這是什么。

另一個區別是FASTCGI仍然需要單獨的FASTCGI到WSGI橋,例如flup,因為mod_wsgi不需要任何類型的橋作為本機實現WSGI接口。

最后,FASTCGI進程是某些管理程序進程或Web服務器的exec / fork,依賴於托管機制。 在mod_wsgi中,進程只是Apache父進程的fork。 一般來說,這並不重要,但確實有一些影響。

還有其他差異,但它們的出現更多是因為mod_wsgi提供了比FASTCGI托管機制更多的功能和可配置性。

無論如何,問題有點模糊,你能更具體地說明你想知道的是什么,或者兩者之間的對比以及為什么? 然后可以更好地針對答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM