Python 使用Nginx的WSGI与uWSGi
有谁能解释一下在Nginx中使用VS的优缺点吗 目前,我正在为Django网站建立一个生产服务器,我已经准备好了,但无法决定是使用WSGI还是uWSGI。你能详细解释一下每种配置的区别吗?哪种配置的伸缩性最好Python 使用Nginx的WSGI与uWSGi,python,django,nginx,wsgi,uwsgi,Python,Django,Nginx,Wsgi,Uwsgi,有谁能解释一下在Nginx中使用VS的优缺点吗 目前,我正在为Django网站建立一个生产服务器,我已经准备好了,但无法决定是使用WSGI还是uWSGI。你能详细解释一下每种配置的区别吗?哪种配置的伸缩性最好 提前感谢通常最好在主web服务器之外的单独进程中运行Python。这样,web服务器就可以有很多非常快速地提供静态内容的小线程,而单独的Python进程又大又重,每个进程都运行自己的Python解释器。因此,普通的WSGI是不好的,因为它使用一个大型Python解释器来膨胀每一个nginx
提前感谢通常最好在主web服务器之外的单独进程中运行Python。这样,web服务器就可以有很多非常快速地提供静态内容的小线程,而单独的Python进程又大又重,每个进程都运行自己的Python解释器。因此,普通的
WSGI
是不好的,因为它使用一个大型Python解释器来膨胀每一个nginx线程。在nginx
后面使用flup
或gunicorn
或uWSGI
要好得多,因为这样可以释放nginx来简单地服务内容,并让您选择运行多少个小型的轻型nginx线程,而不依赖于您选择多少个重量级的Python线程来服务动态内容。目前人们似乎对gunicorn非常满意,但这三个选项中的任何一个都应该很好
接下来,当负载开始变得严重时,它还让您可以将Python移动到另一台服务器上。好的,伙计们,这种混乱是因为缺乏来自多个来源的详细信息,以及这些协议的命名,以及WSGI的实际内容 总结:
为方便起见,此处引用了Flask wiki的解释: uWSGI是nginx、lighttpd和cherokee等服务器上的部署选项;有关其他选项,请参见FastCGI和独立WSGI容器。要将WSGI应用程序与uWSGI协议一起使用,首先需要一个uWSGI服务器。uWSGI既是一个协议,也是一个应用服务器;应用服务器可以为uWSGI、FastCGI和HTTP协议提供服务 最流行的uWSGI服务器是uWSGI,我们将在本指南中使用它。确保安装了它,以便跟进
我对你的回答有点困惑。我看不出他提到在nginx中运行任何类型的WSGI实现。他引用了主要的wsgi.org网站。因此,他最初在WSGI和uWSGI之间的比较有点愚蠢,因为uWSGI是WSGI规范的实现。您自己也曾以一种令人困惑的方式使用过通用WSGI术语,说“它用一个大型Python解释器膨胀了您的每一个nginx线程”。WSGI规范本身无法做到这一点,只有实现才能做到。如果我们比较nginx+mod_WSGI(可插拔模块)和nginx+uWSGI(应用程序服务器容器),这可能是有意义的。因此,当谈到使用nginx运行Python web应用时,由于Manlio Perilo的mod_WSGI是死件,不推荐使用,好的解决方案要么是带有gunicorn或uWSGI的WSGI,要么是带有Flup的FastCGI?键入:“1.uWSGI是协议而不是服务器。”-->“1.WSGI是协议而不是服务器。”实际上,我为1编写的内容是正确的,但确实WSGI是协议,也是uWSGI,所以您编写的两个语句都是正确的:)。当然,没有1的其余上下文。这是uWSGI服务器使用的协议“不要将uwsgi协议与uwsgi服务器(即uwsgi协议)混淆”啊,好的。我还以为你是想在陈述1之间画一条线。“wsgi是一个协议…”和2。“uwsgi是一个实现协议的服务器”。@DerekLitz,当我们执行
python manage.py runserver
时,django服务器在其上运行?python manage.py runserver
是django内置的内部服务器。它不是apache、nginx、gunicorn或其他任何东西django extensions
提供了一个使用Werkzeug框架的runserver\u plus
,但它与任何runserver
都非常接近。是对大量Python WSGI服务器的非常详细的比较,最后有一个总结和一些建议。还使用了一些服务器的配置,这些配置非常不可靠,使它们看起来比实际情况更糟糕。在这种比较中,我们必须仔细阅读。WSGI是一种规范。uWSGI提供了WSGI规范的实现。你无法比较它们。您只能比较不同的实现。