我关注this tutorial并成功手动运行项目。但是,在设置nginx和systemd之后,它会显示502 Bad Gateway
。
我看过其他类似的线程无济于事。
我看到我的枪炮工人正在做ps -ax | grep gunicorn
。
我的nginx配置:
server {
listen 8000;
server_name 127.0.0.1;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/ubuntu/myproject;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/ubuntu/myproject/myproject.sock;
}
}
和systemd文件:
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/myproject
ExecStart=/home/ubuntu/myproject/myprojectenv/bin/gunicorn --workers 3 --bind unix:/home/ubuntu/myproject/myproject.sock myproject.wsgi:application
[Install]
WantedBy=multi-user.target
/var/log/nginx/error.log
的内容:
2017/02/18 17:57:51 [crit] 1977#1977: *6 connect() to unix:/home/ubuntu/myproject/myproject.sock failed (2: No such file or directory) while connecting to upstream, client: 10.0.2.2, server: 172.30.1.5, request: "GET / HTTP/1.1", upstream: "http://unix:/home/ubuntu/myproject/myproject.sock:/", host: "localhost:8000"
手动运行/home/ubuntu/myproject/myprojectenv/bin/gunicorn --workers 3 --bind unix:/home/ubuntu/myproject/myproject.sock myproject.wsgi:application
也有效。也就是说,创建了sock文件。
我觉得我错过了很简单的事情。
我可能做错了什么?
答案 0 :(得分:1)
这里可能有一个订购的东西 - nginx可能在gunicorn之前启动,所以套接字还没有连接。您应该将gunicorn.service
添加到nginx systemd文件中的After
指令。