Nginx+Gunicorn环境下Django域名无法访问但IP端口可正常加载
排查与解决步骤
1. 验证Nginx配置语法并重载服务
- 先检查配置文件是否存在语法错误:
注意:你的静态文件路径里写的sudo nginx -tTrabsfer疑似拼写错误,和启动Gunicorn时的TransferPrj不匹配,先修正这个拼写问题。 - 若语法无错,重载Nginx使配置生效:
sudo systemctl reload nginx
2. 确认自定义配置已启用且默认配置已禁用
- 查看Nginx启用的站点配置:
如果看不到你的自定义配置文件,先从ls -l /etc/nginx/sites-enabled/sites-available目录创建软链接:sudo ln -s /etc/nginx/sites-available/你的配置文件名.conf /etc/nginx/sites-enabled/ - 如果目录下存在
default文件,说明默认站点仍在生效,会优先匹配请求,执行命令禁用:
之后再次重载Nginx。sudo unlink /etc/nginx/sites-enabled/default
3. 查看Nginx日志定位问题
- 实时监控访问日志和错误日志,同时访问域名观察请求记录:
重点关注是否有404、502等错误码,判断Nginx是否正确转发请求到Gunicorn,或是存在路径、权限问题。sudo tail -f /var/log/nginx/access.log /var/log/nginx/error.log
4. 确认Gunicorn监听状态与防火墙设置
- 检查Gunicorn是否正确绑定
0.0.0.0:8000:
确保输出中Gunicorn的监听地址是sudo netstat -tulpn | grep 80000.0.0.0而非127.0.0.1(后者会导致Nginx无法通过公网IP访问)。 - 检查VPS防火墙是否开放80、443端口:
若未开放,执行命令放行:sudo ufw statussudo ufw allow 80/tcp sudo ufw allow 443/tcp
5. 排除浏览器缓存干扰
- 使用浏览器无痕模式访问域名,避免旧缓存导致的默认页显示问题。
内容的提问来源于stack exchange,提问作者Ayodeji Adesola
相关产品推荐
相关产品推荐

