我有一个生产 django 应用程序,可以在 Debug = True;
下正常运行,但在 Debug=False
下运行不佳。
如果我加载运行域,它会显示我的 urls.py
文件,这非常糟糕。
我想让我的应用程序使用 Debug=False
和 TEMPLATE_DEBUG=False
而不是 Debug=True
和 TEMPLATE_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=True
和 TEMPLATE_DEBUG=True
时它会成功加载并显示应用程序,而当我设置 DEBUG=False 时它会成功加载吗?
和 TEMPLATE_DEBUG=False
它显示自定义 http 500 错误页面? (我已经创建了处理http 500错误的方法)
最佳答案
感谢 Toad013 和 Dmitry 的建议。
看来问题可能与 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/