2012-01-03 74 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; 
    # (...)