2012-12-04 12 views
7

私はgunicorn、nginx、supervisordで私のdjangoプロジェクトを展開します。 私はvirtualenvにgunicornをインストールし、INSTALL_APPSに追加しました。 コマンド./manage.py run_gunicorn -b 127.0.0.1:8999作品:私はnginxのを再起動した後gunicorn:ERROR(そのようなファイルはありません)nginx + gunicorn + supervisor

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; 
    } 
} 

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を編集しました。

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) 

このファイルは何ですか?私のプロジェクトをどのように展開できますか?

答えて

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ののパスと仮定されます。

+0

を行います。しかし、それは仕事をしなかった。 – Olga

+0

私はsupervisord.confを編集して追加しました: 'command =/home/user/my_project/bin/gunicorn_django -w 4 -b 127.0.0.1:9999 -t 300 --max-requests = 1000 ディレクトリ=/home/user/my_project/stratatech/stratatech /そしてbin/supevisorctlがすべて起動した後、gunicornが起動しました。しかし、私のサイトはserver_name(nginx.conf)のアドレスでは開けません。どうして? – Olga

+0

nginx.confでの変更のリッスン111111111:80;聞く:80; nginxを再起動します。 – jordanvg

13

私はこの問題を抱えていましたが、問題はGunicornバイナリの完全なパスを提供する必要があることでした。何らかの理由で、指定されたPATH環境変数でも、スーパーバイザーはバイナリを見つけることができませんでした。いったんI/full_path/gunicornが働いた。 (環境変数でこれを正しく行う方法があるかもしれません)

+1

私たちのケースでは、configsを更新した後に 'supervisorctl reread'を見逃していたので、' start'コマンドは削除されたバイナリを探していました。 – cmbuckley

1

私は同じ問題を抱えていましたが、実際に私の仮想環境にはgunicornがインストールされていませんでした。

は、私はそれを試してみました

pip install gunicorn==<version_number> 
+0

「gunicorn」をインストールしてから試してみてください。 – CinCout

関連する問題