在Nginx使用WSGI VS uWSGI时,有没有人可以解释一下优缺点。
目前我正在为Django网站构建一个生产服务器,我已经准备好但无法决定是否应该使用WSGI或uWSGI。您能详细解释一下每种配置的区别吗?哪种配置应该扩展得最好?
提前致谢
答案 0 :(得分:85)
好的,这些混乱是因为缺乏来自多个来源的详细信息,以及这些协议的命名,以及WSGI实际上是什么。
要点:
答案 1 :(得分:26)
通常最好在与主Web服务器不同的进程中运行Python。这样,Web服务器可以有很多很小的线程,可以非常快速地提供静态内容,而单独的Python进程将是大而重的并且每个都运行自己的Python解释器。所以简单的WSGI
是不好的,因为它使用一个大的Python解释器膨胀你的每一个nginx线程。在flup
后面使用gunicorn
或uWSGI
或nginx
要好得多,因为这样可以释放nginx来简单地提供内容,并让您选择运行多少微小的nginx线程,无论您选择多少重量级Python线程来提供动态内容。人们现在似乎对gunicorn
非常满意,但这三个选项中的任何一个都应该可以正常工作。
展望未来,当负载开始变得严重时,它还可以让您将Python移动到另一台服务器。
答案 2 :(得分:15)
我相信这里http://flask.pocoo.org/docs/deploying/uwsgi/是清除困惑的好方法。问题不是很愚蠢,发生在任何看到这两个术语并且没有事先知道如何在mod_PHP世界之外工作的信息(例如对于php或人们没有任何意义)
该网站很好地解释了实际需要什么,有什么区别以及nginx的良好部署示例。
答案 3 :(得分:2)
This blog post是对很多Python WSGI服务器的非常详细的比较,最后是摘要和一些建议。