我有一个生产django应用程序,可以Debug = True;
正常运行但不适用于Debug=False
。
如果我加载运行域,它会显示我的urls.py
文件,这非常糟糕。
我想让我的应用程序使用Debug=False
和TEMPLATE_DEBUG=False
代替Debug=True
和TEMPLATE_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=True
和TEMPLATE_DEBUG=True
时,它会成功加载显示应用程序,当我设置DEBUG=False
和TEMPLATE_DEBUG=False
时,它会显示自定义http 500错误页面? (我已创建处理http 500错误)
答案 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