对于我目前的烧瓶部署,我不得不设置一个uwsgi服务器.这就是我创建uwsgi守护进程的方法:
sudo vim /etc/init/uwsgi.conf
# file: /etc/init/uwsgi.conf
description "uWSGI server"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
exec /myproject/myproject-env/bin/uwsgi --uid www-data --gid www-data --home /myproject/myproject-env/site/F11/Engineering/ --socket /tmp/uwsgi.sock --chmod-socket --module F11 --callable app --pythonpath /myproject/myproject-env/site/F11/Engineering/ -H /myproject/myproject-env
Run Code Online (Sandbox Code Playgroud)
但是在成功运行之后: sudo start uwsgi
uwsgi start/running, process 1286
Run Code Online (Sandbox Code Playgroud)
并尝试通过浏览器访问应用程序:
我得到了502 Bad Gateway
和nginx error.log中的错误条目:
2013/06/13 23:47:28 [错误] 743#0:*296上游过早关闭连接,同时从上游读取响应头,客户端:xx.161.xx.228,服务器:myproject.com,请求:"GET/show_records/2013/5 HTTP/1.1",上游:"uwsgi:// unix:///tmp/uwsgi.sock:",主持人:"myproject.com"
但是sock文件具有它需要的权限:
srw-rw-rw- 1 www-data www-data 0 Jun 13 23:46 /tmp/uwsgi.sock
Run Code Online (Sandbox Code Playgroud)
如果我exec在命令行中从上面运行命令作为一个进程,它可以正常工作.为什么守护程序不能正常工作呢?
顺便说一下Nginx正在运行
vim /etc/nginx/nginx.conf
user www-data;
Run Code Online (Sandbox Code Playgroud)
和 vim /etc/nginx/sites-available/default …