我一直在尝试使用this tutorial部署演示应用。我在Virtualbox的CentOS 7上这样做。
但是,我得到了502 Bad Gateway
。我该如何解决这个问题?
server {}阻止
server {
listen 80;
server_name 172.16.16.215;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/michel/myproject;
}
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://unix:/home/michel/myproject/myproject.sock;
}
}
gunicorn.service文件
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=michel
Group=nginx
WorkingDirectory=/home/michel/myproject
ExecStart=/home/michel/myproject/myprojectenv/bin/gunicorn --workers 3 --bind unix:/home/michel/myproject/myproject.sock myproject.wsgi:application
[Install]
WantedBy=multi-user.target
VAR /日志/ nginx的/ error.log中
2016/08/28 18:55:14 [crit] 17557#0: *4 connect() to unix:/home/michel/myproject/myproject.sock failed (13: Permission denied) while connecting to upstream, client: 172.16.16.23, server: 172.16.16.217, request: "GET / HTTP/1.1", upstream: "http://unix:/home/michel/myproject/myproject.sock:/", host: "172.16.16.217"
答案 0 :(得分:1)
Gunicorn无权保存my_results
文件,或者nginx无权阅读.sock
文件。
将此文件移至.sock
文件夹:
<强> nginx.conf 强>
/tmp/
<强> gunicorn.service 强>
proxy_pass http://unix:/tmp/myproject.sock:/;
答案 1 :(得分:1)
sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx
sudo semodule -i mynginx.pp
这是从this answer复制的。
答案 2 :(得分:0)
我也遇到了这个问题。为我解决了这个问题的原因是运行:
chmod 711 on the home directory
这允许nginx访问run文件夹中的.sock文件。此权限错误在Ubuntu上并未发生,但在从Cent OS派生的Amazon Linux 2上却存在。这些django deployment scripts可能会帮助其他面临此问题的人。
答案 3 :(得分:0)
有很多方法可以获取 502 badgateway ,请使用下面的cmds进行检查。.
sudo systemctl status gunicorn
sudo systemctl status nginx
gunicorn --log-file=- projectname.wsgi:application
以上结果应处于活动模式
答案 4 :(得分:-2)
我禁用了SELinux并且应用程序正常运行。
sudo vi /etc/sysconfig/selinux
设置SELINUX=disabled
。
保存并退出。 RESTART。