在生产中,是Apache+mod_wsgi还是Nginx+mod_wsgi?

2024-04-25 08:54:03 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
3条回答

主要的区别在于nginx是用来在更小的内存空间中处理大量连接的。这使得它非常适合做comet类连接的应用,这些连接可以有许多空闲的开放连接。这也使它有了一个相当小的内存脚印。

从原始性能的角度来看,nginx的速度更快,但并没有快得多,因此我将其作为一个决定因素。

Apache在可用模块方面具有优势,而且它几乎是标准的。任何你使用的网络主机都会安装它,而且大多数技术人员都会非常熟悉它。

另外,如果您使用mod_wsgi,它是您的wsgi服务器,因此您甚至不需要cherrypy。

除此之外,我能给出的最好建议是尝试在两者下设置你的应用程序,并做一些基准测试,因为无论任何人告诉你什么,你的里程可能会有所不同。

对于nginx/mod_wsgi,请确保阅读:

http://blog.dscpl.com.au/2009/05/blocking-requests-and-nginx-version-of.html

由于nginx在底层是一个事件驱动系统,因此它具有不利于阻塞应用程序的行为特征,例如基于WSGI的应用程序。更糟糕的情况是,使用多进程nginx配置,您可以看到用户请求被阻止,即使某些nginx工作进程可能处于空闲状态。Apache/mod_wsgi没有这个问题,因为Apache进程只有在有资源实际处理请求时才会接受请求。因此,Apache/mod_wsgi将提供更可预测和可靠的行为。

nginx mod_wsgi的作者解释了与Apache mod_wsgiin this mailing list message的一些区别。

相关问题 更多 >