uwsgi从控制台工作,但不是ini

时间:2016-02-02 17:25:39

标签: python nginx uwsgi graphite

我正在尝试使用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文件中的配置错误,但我没看到它是什么。

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

命令行和ini文件之间存在一些差异:

  1. 您在ini中使用的是socket而不是http。这意味着,uWSGI服务器将使用uwsgi协议而不是http进行通信。如果您在nginx中使用uwsgi_pass并尝试通过该nginx从浏览器访问您的网站,那很好。但是如果你试图直接从浏览器访问uwsgi,绕过nginx,你就不会成功,因为浏览器不会说uwsgi。

  2. 您已将uswgi-file而不是wsgi-file放入配置中。这根本不起作用,uwsgi将无法找到你的wsgi文件。 如果您使用wsgi文件进入目录,最好使用:

    module = wsgi
    

    而不是wsgi-file