我用gunicorn,nginx,supervisord部署我的django项目。 我在virtualenv上安装了一个gunicorn,join了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)
什么文件丢失? 我怎样才能部署我的项目?
对于未来的搜索者,我有这个问题,问题是我需要提供Gunicorn二进制文件的完整路径。 无论出于何种原因,即使使用PATH =环境变量,supervisor也找不到二进制文件。 一旦我/ full_path / gunicorn它的工作。 (也许有一种方法可以正确使用环境变量)
由于您使用的是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的路径。
我有同样的问题,实际上我发现在我的虚拟环境中没有安装gunicorn。
做
pip install gunicorn==<version_number>