我正在尝试使用nginx设置石墨。因此我需要使用/ etc / uwsgi中的配置或ini文件来运行它,但我无法让应用程序正确启动。
使用命令
uwsgi --http :9090 --wsgi-file /opt/graphite/conf/graphite.py
Graphite启动并运行正常,我可以导航它并查看统计数据。
我继续创建一个ini文件,内容为:
[uwsgi]
processes = 2
socket = localhost:8081
gid = nginx
uid = nginx
chdir = /opt/graphite/conf
uswsgi-file = graphite.py
我看到运行ini文件:
mapped 145536 bytes (142 KB) for 2 cores
*** Operational MODE: preforking ***
*** no app loaded. going in full dynamic mode ***
*** uWSGI is running in multiple interpreter mode ***
我只能猜测ini文件中的配置错误,但我没看到它是什么。
感谢任何帮助!
答案 0 :(得分:0)
命令行和ini文件之间存在一些差异:
您在ini中使用的是socket
而不是http
。这意味着,uWSGI服务器将使用uwsgi协议而不是http进行通信。如果您在nginx中使用uwsgi_pass
并尝试通过该nginx从浏览器访问您的网站,那很好。但是如果你试图直接从浏览器访问uwsgi,绕过nginx,你就不会成功,因为浏览器不会说uwsgi。
您已将uswgi-file
而不是wsgi-file
放入配置中。这根本不起作用,uwsgi将无法找到你的wsgi文件。
如果您使用wsgi文件进入目录,最好使用:
module = wsgi
而不是wsgi-file
。