django - 生产 Django 应用程序根据 Debug = Value 抛出/不抛出 500 错误

标签 django http nginx gunicorn

我有一个生产 django 应用程序,可以在 Debug = True; 下正常运行,但在 Debug=False 下运行不佳。

如果我加载运行域,它会显示我的 urls.py 文件,这非常糟糕。

我想让我的应用程序使用 Debug=FalseTEMPLATE_DEBUG=False 而不是 Debug=TrueTEMPLATE_DEBUG =True ,因为通过使用 True 值它会公开应用程序

如果我在 nginx 下使用 DEBUG=True 查看我的 error.log:

2013/10/25 11:35:34 [error] 2263#0: *5 connect() failed (111: Connection refused) while connecting to upstream, client: xx.xxx.xx.xxx, server: *.myapp.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8001/", host: "www.myapp.com"

使用DEBUG=True在nginx下查看我的access.log:

xx.xxx.xx.xxx - - [25/Oct/2013:11:35:33 +0000] "GET / HTTP/1.1" 502 173 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0"

所以我的问题是,为什么当我设置 DEBUG=TrueTEMPLATE_DEBUG=True 时它会成功加载并显示应用程序,而当我设置 DEBUG=False 时它会成功加载吗? TEMPLATE_DEBUG=False 它显示自定义 http 500 错误页面? (我已经创建了处理http 500错误的方法)

最佳答案

感谢 Toad013Dmitry 的建议。

看来问题可能与 nginx 和 Gunicorn 的启动方式有关,而不是配置问题,因此,我最终使用以下命令来启动我的应用程序:

/usr/local/bin/gunicorn -c /home/ubuntu/virtualenv/gunicorn_config.py myapp.wsgi
sudo nginx -c /etc/nginx/nginx.conf

关于django - 生产 Django 应用程序根据 Debug = Value 抛出/不抛出 500 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19595903/

相关文章:

node.js - nginx ws 无效的 URL 前缀

javascript - 如何从 nginx 访问 Node 文件

python - Django 民意调查应用程序 : OperationalError: attempt to write a read only database

java - 其余错误代码/成功代码

json - 服务器如何检测使用 fetch API 发出的请求?

javascript - http fetch basic auth - 使用浏览器凭证

streaming - 是否可以让 nginx 流式传输当前正在写入的文件以供下载?

python - django Model.objects.raw 将 SUM 字段返回为 Decimal

python - 这个日期检查是否更简洁?

django - Django 测试用例中的 IntegrityError