Supervisor和uWSGI不能与nginx一起使用。

3

我使用supervisord来管理tornado,并且在使用nginx作为负载均衡器时没有任何问题。

但是,当我尝试使用supervisor和uWSGI以及nginx作为负载均衡器时,我遇到了严重的问题。我正在使用bottle框架。

当我从命令行运行下面的代码并在Firefox中加载一个页面时,使用nginx一切正常:

sudo command = /usr/local/bin/uwsgi --loop gevent --socket 127.0.0.1:8070 --wsgi-file /home/ubuntu/workspace/uwsgiServer.py -b 32768 --master --async 5 --enable-threads --listen 100 --uid root

如果我把命令行放在supervisor中,那么我会收到“页面未找到”的提示。
uWSGI Error
Python application not found



[program:uwsgi]
#autostart=true
#autorestart=true
#process_name = uwsgi-%(process_num)s
command = /usr/local/bin/uwsgi --loop gevent --socket 127.0.0.1:8070 --wsgi-file /home/ubuntu/workspace//uwsgiServer.py -b 32768 --master --async 5 --enable-threads --listen 100 --uid root
#--port=%(process_num)s
#--log_file_prefix=%(here)s/logs/%(program_name)s-%(process_num)s.log
#numprocs = 1
#numprocs_start = 8070

以下是nginx.conf文件中相关的部分:
```nginx ```
请注意,这里没有实际内容,需要提供更具体的信息以便进行翻译。
upstream uwsgi_b {
      server 127.0.0.1:8070;
    }


location /u/ {
                       include uwsgi_params;
                       uwsgi_param X-Real-IP $remote_addr;
                       uwsgi_param Host $http_host;
                       uwsgi_pass uwsgi_b;
                 }
1个回答

6

您可能需要在supervisord配置文件中添加更多参数,例如--pp(Python路径)到uwsgi命令,并且可能还需要一些环境变量:

[program:uwsgi]
command = /usr/local/bin/uwsgi 
    --loop gevent 
    --socket 127.0.0.1:8070 
    --wsgi-file uwsgiServer.py 
    --buffer-size 32768 --master --async 5 --enable-threads --listen 100 --uid root 
    --pp /home/ubuntu/workspace/

autostart=true
autorestart=true
environment=ENV_VAR='var'
user=root # or other
group=root # or other
directory=/home/ubuntu/workspace/
umask=022

编辑:移除了Django特定的设置


嗨,这不是一个Django应用程序。没有静态目录。 - Tampa
抱歉,我刚刚查看了我的一个配置文件。你尝试过在命令中添加--pp吗? - Tisho

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接