我遇到了问题。我有一个python脚本。你可以称之为CGI脚本。它在Apache2下工作正常,但在关闭系统之前只剩下一个它永远运行。新系统使用nginx。 我按照许多人的建议配置uwsgi,同时搜索解决方案,配置虚拟主机以运行此脚本。 我在uwsgi wiki上使用了第一个例子来确认我已经正确配置了nginx,它可以与uwsgi进行通信。像魅力一样工作。
现在我的并发症:
我的脚本是在不久前编写的,不是为WSGI设计的,也不是我想要/可以重写它。
所以我已经为uwsgi安装了cgi模块并尝试使用它。我得到的只是502错误。什么都没有执行uwsgi。
这是我用于此应用的配置:
[uwsgi]
plugins = cgi
socket = 127.0.0.1:9010
cgi = /=/usr/share/test/
cgi-allowed-ext = .py
cgi-helper = .py=python
这是我在index.py(测试脚本)中的代码:
#!/usr/bin/python
print "Content-type: text/html\n\n"
print "<html><body><h1>It works!</h1></body></html>"
我尝试使用以下命令测试uwsgi:
/usr/sbin/uwsgi --http :9011 --ini /etc/uwsgi/test.ini --master
这是我得到的输出:
[uWSGI] getting INI configuration from /etc/uwsgi/test.ini
*** Starting uWSGI 1.1.2 (64bit) on [Fri Apr 20 15:26:33 2012] ***
compiled with version: 4.4.6 20110731 (Red Hat 4.4.6-3) on 19 April 2012 15:09:37
current working directory: /home/user
detected binary path: /usr/sbin/uwsgi
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread mutexes
uWSGI http bound on :9011 fd 3
uwsgi socket 0 bound to TCP address 127.0.0.1:9010 fd 6
your server socket listen backlog is limited to 100 connections
*** Operational MODE: single process ***
initialized CGI mountpoint: / = /usr/share/test/
*** no app loaded. going in full dynamic mode ***
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 6727)
spawned uWSGI worker 1 (pid: 6728, cores: 1)
spawned uWSGI http 1 (pid: 6729)
-- unavailable modifier requested: 0 --
-- unavailable modifier requested: 0 --
-- unavailable modifier requested: 0 --
-- unavailable modifier requested: 0 --
哪里有问题?请帮忙。
提前致谢。
答案 0 :(得分:7)
确定。我没有读好uwsgi WIKI。我所要做的就是将--http-modifier1 9
添加到命令行开关,或uwsgi_modifier1 9;
添加到nginx配置。
location / {
include /etc/nginx/uwsgi_params;
uwsgi_modifier1 9;
uwsgi_pass 127.0.0.1:9010;
}
/usr/sbin/uwsgi --http :9011 --http-modifier1 9 --ini /etc/uwsgi/test.ini --master