2012-01-03 73 views
2

當使用Django與Apache是​​最好的服務器配置?我應該使用mod_wsgi嗎?Django與Python - 網絡服務器

此時沒有配置完成我只有應用程序代碼已經使用Django內置的本地開發服務器進行過測試。

有人會推薦使用另一個網絡服務器應用程序,如nginx?

+1

的nginx,lighttpd的是相當不錯的選擇..使用Apache是​​我'd使用mod_wsgi,因此mod_python似乎幾乎不推薦 – 2012-01-03 09:00:50

+0

經過一點搜索後,它在django網站上聲明mod_python將在版本1.5之後棄用 – 2012-01-03 09:17:48

+0

通過使用nginx比apache有很大的性能增益/損失 – 2012-01-03 09:18:14

回答

2

與Apache的計劃是一個比以下更慢。使用uwsgi(讀下一請):http://www.jeremybowers.com/blog/post/5/django-nginx-and-uwsgi-production-serving-millions-page-views/

+1

請更改您的答案。 「你不能使用Apache」聽起來有點爲我規定。 OP確實可以使用Apache + mod_wsgi,這將是一個合理的設置。如果你認爲這一個更好,請說明優點等。 – 2012-01-03 12:31:19

+0

好吧,我已經做到了。 – sergzach 2012-01-03 14:27:39

+0

www.jeremybowers.com目前由一個簡單的「Welcome to nginx!」組成信息。沒有充滿信心的填充:) – 2013-02-25 17:54:15

2

Django docs狀態:

如果你是新來部署Django和/或Python,我們會建議您 第一次嘗試mod_wsgi的。在大多數情況下,它將是最簡單,最快速和最穩定的部署選擇。

在這一點上,我會選擇Apache + wsgi。

大部分時間在Apache配置的Django歸結到這條線:

WSGIScriptAlias//path/to/project/bin/django.wsgi 

而且django.wsgi是這樣的:

#!/usr/bin/python 
import djangorecipe.wsgi 
application = djangorecipe.wsgi.main('project.settings', logfile='') 

我也打算建議的nginx + FastCGI的,如我更喜歡nginx lighttpd(它更好地被修飾,或者至少這是我過去幾年的感受)。但它不包含在Django文檔中,並且nginx網站中的文檔不太好。我會堅持使用Apache + wsgi,除非您有充分的理由不要(您已經運行nginx或lighttpd,或者有充分理由認爲使用fastcgi的性能差異可能對您的站點有重大意義)。在這種情況下heretwo howtos。它的要點是,你運行Django的一個FastCGI的服務器:

python manage.py runfcgi host=127.0.0.1 port=8080 --settings=settings 

,然後配置nginx的發送請求到它:

location/{ 
    # host and port to fastcgi server 
    fastcgi_pass 127.0.0.1:8080; 
    # (...)