Ubuntu 12.04、nginx 1.2.0、uwsgi 1.0.3。我使用以下命令启动uwsgi:
uwsgi -s 127.0.0.1:9010 -M -t 30 -A 4 -p 4 -d /var/log/uwsgi.log
字符串在每个请求上,nginx都会回复502,uwsgi会写入以下行:
-- unavailable modifier requested: 0 --
型
szqfcxe21#
原始答案
对于Ubuntu 11.10上的Python 2,使用upstart,使用apt-get install uwsgi-plugin-python安装uWSGI的python插件,如果您使用ini文件配置uWSGI应用程序,则将plugins = python添加到[uwsgi]部分,它应该可以解决此问题。
upstart
apt-get install uwsgi-plugin-python
uWSGI
plugins = python
[uwsgi]
编辑:更新为Python 3和Ubuntu 17.10
对于Ubuntu 17.10上的Python 3,使用systemd,使用apt-get install uwsgi-plugin-python3安装uWSGI的python插件,如果您使用ini文件配置uWSGI应用程序,则将plugins = python3添加到[uwsgi]部分,它应该可以解决此问题。有关开始使用python/uWSGI应用程序的更多信息,包括如何使用ini文件配置它们,请查看这个方便的guide
systemd
apt-get install uwsgi-plugin-python3
plugins = python3
python
ini
lrpiutwd2#
通过安装uwsgi-plugin-python3插件并将--plugin python3选项添加到uwsgi启动命令解决
uwsgi-plugin-python3
--plugin python3
uwsgi
oo7oh9g93#
我在Ubuntu上从upstart启动uwsgi。我通过运行apt-get install uwsgi-plugin-python解决了这个问题,然后将plugins=python添加到/etc/uwsgi/applications-available中的application.ini中。
plugins=python
bnl4lu3b4#
来自http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html,“为了将请求路由到特定的插件,Web服务器需要向uWSGI示例传递一个称为修饰符的幻数。默认情况下,此数字设置为0,Map到Python。我使用9作为bash脚本,它工作正常。数字及其含义在此页面上:http://uwsgi-docs.readthedocs.org/en/latest/Protocol.html的我的nginx配置:
location ~ .cgi$ { include uwsgi_params; uwsgi_modifier1 9; uwsgi_pass 127.0.0.1:3031; }
字符串
fbcarpbf5#
通过添加插件行修改你的ini文件。
[uwsgi] plugins = python3
yyhrrdl86#
我使用的是Ubuntu 18.04和Python 3。下面是我用来让它工作的确切配置。您必须安装Python 3 uWSGI插件:
apt install uwsgi-plugin-python3
字符串你的Nginx站点配置应该指向你的uWSGI套接字。确保端口与后面步骤中的配置匹配。
location / { uwsgi_pass 127.0.0.1:9090; include uwsgi_params; }
型重新加载Nginx配置以反映您刚才所做的更改:
systemctl reload nginx
型您可以使用命令行参数或ini文件进行配置。我创建了uwsgi.ini。确保套接字地址与nginx配置匹配。
uwsgi.ini
[uwsgi] socket = 127.0.0.1:9090 chdir = /var/www processes = 4 threads = 2 plugins = python3 wsgi-file = /var/www/app.py
型我的app.py网站上有一个简单的例子:
def application(env, start_response): start_response('200 OK', [('Content-Type','text/plain')]) return [b"Hello World!"]
型现在从命令行启动uWSGI服务器:
uwsgi uwsgi.ini
6条答案
按热度按时间szqfcxe21#
原始答案
对于Ubuntu 11.10上的Python 2,使用
upstart
,使用apt-get install uwsgi-plugin-python
安装uWSGI
的python插件,如果您使用ini文件配置uWSGI
应用程序,则将plugins = python
添加到[uwsgi]
部分,它应该可以解决此问题。编辑:更新为Python 3和Ubuntu 17.10
对于Ubuntu 17.10上的Python 3,使用
systemd
,使用apt-get install uwsgi-plugin-python3
安装uWSGI
的python插件,如果您使用ini文件配置uWSGI
应用程序,则将plugins = python3
添加到[uwsgi]
部分,它应该可以解决此问题。有关开始使用
python
/uWSGI
应用程序的更多信息,包括如何使用ini
文件配置它们,请查看这个方便的guidelrpiutwd2#
通过安装
uwsgi-plugin-python3
插件并将--plugin python3
选项添加到uwsgi
启动命令解决oo7oh9g93#
我在Ubuntu上从upstart启动uwsgi。我通过运行
apt-get install uwsgi-plugin-python
解决了这个问题,然后将plugins=python
添加到/etc/uwsgi/applications-available中的application.ini中。bnl4lu3b4#
来自http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html,“为了将请求路由到特定的插件,Web服务器需要向uWSGI示例传递一个称为修饰符的幻数。默认情况下,此数字设置为0,Map到Python。
我使用9作为bash脚本,它工作正常。数字及其含义在此页面上:http://uwsgi-docs.readthedocs.org/en/latest/Protocol.html的
我的nginx配置:
字符串
fbcarpbf5#
通过添加插件行修改你的ini文件。
字符串
yyhrrdl86#
我使用的是Ubuntu 18.04和Python 3。下面是我用来让它工作的确切配置。
您必须安装Python 3 uWSGI插件:
字符串
你的Nginx站点配置应该指向你的uWSGI套接字。确保端口与后面步骤中的配置匹配。
型
重新加载Nginx配置以反映您刚才所做的更改:
型
您可以使用命令行参数或ini文件进行配置。我创建了
uwsgi.ini
。确保套接字地址与nginx配置匹配。型
我的app.py网站上有一个简单的例子:
型
现在从命令行启动uWSGI服务器:
型