Nginx ModWsgi 不好吗?

Unk*_*own 0 nginx wsgi

我正在考虑使用 mod_wsgi 部署 Nginx。但是我读了这篇博客:

http://blogg.ingspree.net/blog/2007/11/24/nginx-mod-wsgi-vs-fastcgi/

这里nginx的mod_wsgi的作者说,极少数的工作线程会被阻塞相当长的时间,等待你的脚本返回,这会降低服务器的速度。

这有多真实?我应该坚持使用 fastcgi 还是有更好的方法?

Gra*_*ton 7

因为 nginx 是一个事件驱动系统,所以它实际上是最低级别的单线程。换句话说,在使用 Apache 时与 prefork MPM 没有太大区别。这意味着一旦在 nginx/mod_wsgi 下运行的 WSGI 应用程序中处理了请求,就无法执行并行任务。

在 Apache 的 prefork MPM 中,这不是一个太严重的问题,因为 Apache 进程不会接受连接,除非它能够立即处理它,因此任何其他请求都将由另一个进程处理。在 nginx/mod_wsgi 中不是这种情况,但是因为使用事件驱动系统意味着它可以一次贪婪地接受许多请求,即使它在技术上一次只能处理一个。这些请求将一次被处理一个,因此已经被进程接受的后面的请求将被延迟。

这个问题的进一步解释可以在:

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