You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过Nginx开启Django的DEBUG模式?开DEBUG后仍显500错误如何解决

Django开启DEBUG模式不生效排查配置方案

1 核实Django核心配置项

  • 确认settings.py中DEBUG = True未被生产环境配置分支覆盖,不要放在if ENV == 'prod'这类条件判断的否定分支下
  • 检查ALLOWED_HOSTS配置,必须包含当前访问使用的域名或IP,例如用10.0.0.5访问时需配置ALLOWED_HOSTS = ['10.0.0.5', '你的正式域名'],DEBUG模式下ALLOWED_HOSTS不匹配会直接返回通用错误页,不会展示调试栈

2 重启服务使配置生效

修改Django配置后必须重启Gunicorn进程才会生效,不要仅重启Nginx:

  • 若用systemd管理Gunicorn,执行systemctl restart 你的Gunicorn服务名
  • 若用supervisor管理进程,执行supervisorctl restart 你的项目进程名

3 排查上层服务的错误页拦截

  • 检查Nginx配置是否存在自定义500错误页规则,类似error_page 500 502 503 504 /50x.html;的配置会优先返回Nginx默认错误页,临时注释该配置并执行nginx -s reload重启Nginx后再测试
  • 检查Gunicorn启动参数,确认未通过环境变量强制覆盖DEBUG值,若启动命令或服务配置中有DJANGO_DEBUG=False的变量声明,需修改为True后重启Gunicorn

4 兜底日志排查方案

如果调试页始终无法正常展示,可以通过日志直接获取报错信息:

  • 查看Gunicorn错误日志,默认路径一般为/var/log/gunicorn/你的项目名-error.log,会打印完整的Django报错追溯栈
  • 查看Nginx错误日志/var/log/nginx/error.log,排查是否是请求转发、权限、静态资源层面的问题
  • 可临时在settings.py中添加日志输出配置,将ERROR级别的日志写入指定文件,方便排查

重要提示:DEBUG模式仅可用于内部排查问题,问题解决后必须立刻关闭,避免代码、数据库配置等敏感信息泄露。

内容的提问来源于stack exchange,提问作者JohnShallow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 19:18:03