Gunicorn Socket权限拒绝引发502 Bad Gateway问题求助
2024/09/29 14:04:13 [crit] 6631#6631: *1 connect() to unix:/home/ubuntu/myproject/Ecom_project/ecom_p/gunicorn.sock failed (13: Permission denied) while connecting to upstream, client: 103.175.89.121, server: ecomweb-abhishadas.buzz, request: "GET / HTTP/1.1", upstream: "http://unix:/home/ubuntu/myproject/Ecom_project/ecom_p/gunicorn.sock:/", host: "www.ecomweb-abhishadas.buzz"
已尝试的操作
- 检查Socket权限:执行命令
ls -l /home/ubuntu/myproject/Ecom_project/ecom_p/gunicorn.sock验证socket文件权限,确认Nginx用户(www-data)无访问权限。 - 修改Socket权限:使用
chmod调整权限确保Nginx用户可访问,示例命令:sudo chmod 660 /home/ubuntu/myproject/Ecom_project/ecom_p/gunicorn.sock - 设置Socket所有权:将socket文件设为Gunicorn运行用户所有,示例命令:
sudo chown ubuntu:www-data /home/ubuntu/myproject/Ecom_project/ecom_p/gunicorn.sock - 重启服务:重启Nginx和Gunicorn应用更改,命令:
sudo systemctl restart nginxsudo systemctl restart gunicorn(或对应启动Gunicorn的特定命令)
预期效果
调整权限和所有权后,Nginx可正常连接Gunicorn,解决站点502 Bad Gateway错误,正常提供Django应用服务。
Nginx配置文件内容
upstream app_server { server unix:/run/gunicorn.sock fail_timeout=0; } server { listen 80; server_name ecomweb-abhishadas.buzz www.ecomweb-abhishadas.buzz; root /var/www/ecomweb-abhishadas.buzz; # Serve static files location /static/ { alias /home/ubuntu/myproject/Ecom_project/ecom_p/static/; } # Pass requests to Gunicorn location / { proxy_set_header Host $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/ubuntu/myproject/Ecom_project/ecom_p/gunicorn.sock; } }
内容的提问来源于stack exchange,提问作者Abhisha Das
相关产品推荐
相关产品推荐

