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

时间:2013-10-25 17:21:21

标签: django http nginx gunicorn

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

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

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

如果我使用DEBUG=True在nginx下查看 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=FalseTEMPLATE_DEBUG=False时,它会显示自定义http 500错误页面? (我已创建处理http 500错误)

1 个答案:

答案 0 :(得分:2)

感谢 Toad013 Dmitry 提供建议。

看来问题可能出在nginx和gunicorn如何启动而不是配置问题,因此,我最终使用以下内容启动我的应用程序:

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