2024-04-25 07:41:53 发布
网友
有谁能解释一下在Nginx中使用WSGI与uWSGI的利弊。
目前,我正在为Django网站建立一个生产服务器,我已经准备好了,但无法决定我应该使用WSGI还是uWSGI。你能详细解释一下每种配置的区别吗?哪种配置的伸缩性最好?
提前谢谢
我相信这里的这个http://flask.pocoo.org/docs/deploying/uwsgi/是一个很好的解决困惑的答案。这个问题并不愚蠢,任何人看到这两个术语时都会遇到,并且事先没有关于mod_PHP world之外的工作方式的信息(例如,对PHP或其他人没有任何不利之处)
该站点很好地用实际的术语解释了什么是需要的,什么是区别,并且是nginx的一个很好的部署示例。
好吧,伙计们,这种混乱是因为缺乏来自多个来源的细节,以及这些协议的命名,以及WSGI实际上是什么。
总结:
通常最好在主web服务器的单独进程中运行Python。这样,web服务器可以有很多小线程,这些线程可以非常快速地提供静态内容,而您的单独Python进程将是大而重的,并且每个进程都运行自己的Python解释器。所以简单的WSGI是不好的,因为它会用一个大的Python解释器使每个nginx线程膨胀。在nginx后面使用flup或gunicorn或uWSGI要好得多,因为这样可以释放nginx来简单地服务内容,并允许您选择要运行多少个小型的nginx线程,而不依赖于您选择要运行多少个重量级Python线程来服务动态内容。目前人们似乎对gunicorn很满意,但这三种选择中的任何一种都应该可以正常工作。
WSGI
nginx
flup
gunicorn
uWSGI
接下来,当负载开始变得严重时,还可以让您自由地将Python移动到另一个服务器。
我相信这里的这个http://flask.pocoo.org/docs/deploying/uwsgi/是一个很好的解决困惑的答案。这个问题并不愚蠢,任何人看到这两个术语时都会遇到,并且事先没有关于mod_PHP world之外的工作方式的信息(例如,对PHP或其他人没有任何不利之处)
该站点很好地用实际的术语解释了什么是需要的,什么是区别,并且是nginx的一个很好的部署示例。
好吧,伙计们,这种混乱是因为缺乏来自多个来源的细节,以及这些协议的命名,以及WSGI实际上是什么。
总结:
通常最好在主web服务器的单独进程中运行Python。这样,web服务器可以有很多小线程,这些线程可以非常快速地提供静态内容,而您的单独Python进程将是大而重的,并且每个进程都运行自己的Python解释器。所以简单的
WSGI
是不好的,因为它会用一个大的Python解释器使每个nginx线程膨胀。在nginx
后面使用flup
或gunicorn
或uWSGI
要好得多,因为这样可以释放nginx来简单地服务内容,并允许您选择要运行多少个小型的nginx线程,而不依赖于您选择要运行多少个重量级Python线程来服务动态内容。目前人们似乎对gunicorn
很满意,但这三种选择中的任何一种都应该可以正常工作。接下来,当负载开始变得严重时,还可以让您自由地将Python移动到另一个服务器。
相关问题 更多 >
编程相关推荐