gunicorn:错误(没有这样的文件)nginx + gunicorn +主管

时间:2012-12-04 20:40:31

标签: django nginx gunicorn supervisord

我使用gunicorn,nginx,supervisord部署我的django项目。 我在virtualenv中安装了一个gunicorn,在INSTALL_APPS中添加了。 命令./manage.py run_gunicorn -b 127.0.0.1:8999有效:

2012-12-04 12:27:33 [21917] [INFO] Starting gunicorn 0.16.1
2012-12-04 12:27:33 [21917] [INFO] Listening at: http://127.0.0.1:8999 (21917)
2012-12-04 12:27:33 [21917] [INFO] Using worker: sync
2012-12-04 12:27:33 [22208] [INFO] Booting worker with pid: 22208

对于nginx,我编辑了nginx.conf:

server {
    listen 111111111:80;
    server_name my_site.pro; 

    access_log /home/user/logs/nginx_access.log;
    error_log /home/user/logs/nginx-error.log;

    location /static/ {
        alias /home/user/my_project/static/;
    }
    location /media/ {
        alias /home/user/my_project/media/;
    }
    location / {
        proxy_pass http://127.0.0.1:8999;
        include /etc/nginx/proxy.conf;
    }
}

之后我重新启动了nginx。

supervisord.conf:

[unix_http_server]
file=/tmp/supervisor-my_project.sock  
chmod=0700                
chown=user:user

[supervisord]
logfile=/home/user/logs/supervisord.log
logfile_maxbytes=50MB        
logfile_backups=10           
loglevel=info                
pidfile=/tmp/supervisord-my_project.pid
nodaemon=false              
minfds=1024                  
minprocs=200 

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///tmp/supervisor-my_project.sock 

[program:gunicorn]
command=/home/user/bin/manage run_gunicorn -w 4 -b 127.0.0.1:8999 -t 300 --max-   requests=1000
startsecs=10
stopwaitsecs=60
redirect_stderr=true
stdout_logfile=/home/user/gunicorn.log

我跑了bin/supervisorctl start all。但我得到了:

gunicorn: ERROR (no such file)

文件丢失了什么?我该如何部署我的项目?

4 个答案:

答案 0 :(得分:14)

对于未来的搜索者,我遇到了这个问题,问题是我需要提供Gunicorn二进制文件的完整路径。无论出于何种原因,即使使用PATH =环境变量,指定的主管也无法找到二进制文件。一旦我/ full_path / gunicorn它工作。 (也许有办法用环境变量正确地做到这一点)

答案 1 :(得分:1)

由于您使用的是virtualenv,因此必须将环境设置为supervisord.conf中使用的PATH。

试试这个:

[program:gunicorn]
command=/home/user/bin/manage run_gunicorn -w 4 -b 127.0.0.1:8999 -t 300 --max-requests=1000
environment=PATH="/home/user/bin/"
...

这假设/home/user/bin/是你的virtualenv的路径。

答案 2 :(得分:1)

我有同样的问题,实际上我发现在我的虚拟环境中没有安装gunicorn。

echo "`<script>` alert('Profile already Exist for this ip'); `</script>`";
header("location:backupprofile_windowstonas_step2.php");
die("123");

答案 3 :(得分:0)

我从使用易于安装的主管切换到使用pip。这将超级用户和pidproxy的路径从/ usr / bin更改为/ usr / local / bin /。我在主管gunicorn.conf中使用pidproxy。

因此,仅切换超级用户安装方法就意味着找不到“ pidproxy”并生成消息“ gunicorn:ERROR(无此文件)”。

糟糕的错误消息可能是指枪支弹药以外的东西。

command = / usr / local / bin / pidproxy /var/run/gunicorn.pid /gunicorn.sh