nginx和uwsgi服务器中的uwsgi模块的区别

Posted

技术标签:

【中文标题】nginx和uwsgi服务器中的uwsgi模块的区别【英文标题】:difference between uwsgi module in nginx and uwsgi server 【发布时间】:2014-01-04 17:12:29 【问题描述】:

我是 linux 开发的新手。我对阅读的文档有点困惑。 我的最终目标是托管一个简单的 python 支持的 Web 服务,该服务将检查传入的有效负载,并将其转发到其他服务器。这在 python 中应该少于 30 行代码。

我打算使用 nginx 来提供 python 文件。根据我的研究,我还需要一个 python web 框架。我选择了 uwsgi。我很混乱。我需要哪一个?一个 nginx uwsgi 模块,还是 uwsgi 服务器?我不想仅仅为了这个简单的目的而使用 django。

nginx documentation 提到

不要将 uwsgi 协议与 uWSGI 服务器(使用 uwsgi 协议)混淆

那么,这是否意味着,我不需要单独安装 uwsgi 服务器?我只是安装nginx,然后开始配置吗?我正在使用 nginx 1.4.4

有人可以分享关于如何使用 nginx 配置 uwsgi 的逐步配置过程,以及示例 python 代码(也许是你好世界)?我可以很好地配置 nginx,但我不知道如何让它服务于 python 页面。我能找到的所有文档都涉及将 django 放在首位。

【问题讨论】:

【参考方案1】:

你把事情搞混了,让我澄清一下。

Python 通过 Web 服务器发布应用程序的标准方式是 WSGI——您可以将其视为 Python 的原生 CGI。 uWSGI 是一个 WSGI 兼容的服务器,它使用 uwsgi 协议与其他 uWSGI 实例或上游服务器通信。通常上游服务器是nginx,带有 HttpUwsgiModule 允许它使用 uwsgi 协议进行通信——使用 nginx,您可以为您的应用服务器、负载平衡和提供静态文件提供额外的保护层。在大多数情况下,You Should Be Using Nginx + UWSGI。为了回答你的问题,uWSGI 是独立于 nginx 安装和运行的,它们都需要配置为相互通信。

纯 WSGI 非常低级,因此您可能希望使用符合 WSGI 的framework。我猜前两位是DjangoFlask

对于 hello world Flask 设置,Serving Flask With Nginx 似乎是一篇好文章。

【讨论】:

apache mod_wsgi 可以使用 uwsgi 协议与 nginx 通信吗? @jwalker @deepak 您回答了自己的问题:它是针对 Apache 的。以前有 nginx 的 mod_wsgi,但你真的不想要那个。 其实我的问题是可以在 nginx 和 apache @jwalker 之间使用 uwsgi 协议 @deepak 我不这么认为。你为什么需要那个? @fujianjin6471 已修复

以上是关于nginx和uwsgi服务器中的uwsgi模块的区别的主要内容,如果未能解决你的问题,请参考以下文章

nginx 和uwsgi的区别与作用

Flask+uwsgi+nginx 部署

[部署开发环境]部署django的生成环境nginx+uwsgi+django

基于Django的Nginx+uwsgi的服务器前置环境部署

在 Nginx 和 UWSGI 中使用 GeoIP 模块

nginx+uWSGI+django+virtualenv+supervisor发布web服务器