2012-11-22 58 views
3

我已经在这个主题上搜索过,并且建议似乎是nginx应该在那里为静态文件和apache + wsgi提供处理Django的帮助。这些信息有很多年了,所以我想知道是否有一种方法可以在不降低性能的情况下进行简化,只需要依赖Nginx和fastCGI和/或wsgi。Django和nginx。我还需要apache吗?

我是新来的非英雄部署,所以这就是为什么我可能听起来像我不知道我在说什么。

+0

Nginx充当代理,所以你喜欢的任何东西都可以与它一起使用。 –

回答

2

如果你想要去的nginx的路线,最好的选择是:

  • nginx的 - > gunicorn
  • nginx的 - > uWSGI

运行在FASTCGI之上的Python WSGI应用中由于FASTCGI/WSGI适配器存在问题以及它们如何与服务器一起部署,所以一般来说不是很好的体验。

阿帕奇/ mod_wsgi的仍然是一个比可接受的解决方案更并且当作为运行它实际上将用更少的资源执行更好:

  • nginx的 - >的Apache/mod_wsgi的

由于瓶颈AREN”不管你选择哪个,只要你设置得当,大多数人不会这样做,因为网站没有足够的流量,或者他们没有进行监测以了解他们需要改变的内容。

总的来说,挑选你认为更容易管理的东西是最好的事情。

有关你的实际性能瓶颈都将是一些背景和监督的重要性,看:

这一切都表示,你提到的Heroku。现在真的只有Heroku有过一次选择,那就是使用gunicorn,你不需要担心nginx。然而,这本身就是一个问题,因为单独使用gunicorn并不是提供静态媒体资产的好选择,因此几乎被Heroku强制在其他地方提供静态资产。

+0

* FASTCGI不适合Python web应用程序的体验。* 您有任何证据吗? FastCGI只是一个协议,值得注意的是一个非常好的协议,包括错误报告和keepalive支持。 – VBart

+0

十年来,为尝试让Python web应用程序在mod_python,FASTCGI,SCGI,AJP和WSGI变体上运行的人们提供支持,FASTCGI一直是最能解决问题的人。Apache FASTCGI更是如此,但nginx并不遥远。当您尝试使用Python时,您的典型Web托管公司FASTCGI产品也很差。对于某些背景,请阅读http://blog.dscpl.com.au/2011/09/why-is-wsgi-deployment-under-fastcgi-so.html和http://blog.dscpl.com。 au/2009/04/improvements-commercial-pythonwsgi-hosting.html –

+0

看来你很困惑协议和它的实现。 Apache不是nginx。你对nginx fastcgi有什么问题? – VBart