生产中的Django:设置DEBUG = False导致`Server Error(500)`

时间:2014-12-18 03:15:28

标签: django exception error-handling django-settings

我知道这个问题has been discussed。但问题仍然存在,我没有任何解决方案。请帮忙。

我的平台是:Ubuntu 14.04 LTS,Python 3.4,MySQL 5.5,Django 1.7,Nginx 1.4.6和Gunicorn 19.1.1。

当我在生产服务器中设置DEBUG = False时,我的Django应用程序运行可能会持续半天。在那之后,烦人的Server Error (500)总是出现在某些功能上,但不是每个功能都出现。如果我转向DEBUG = True,一切都会好的。

我还设置了ALLOWED_HOSTS = ['*']。有人说它不应该是生产中的外卡。但我的应用程序是公开的,我应该如何设置它?其他人说它应该是'localhost'。但只有localhost才能访问服务器?为什么要去生产呢?

这个问题有标准解决方案吗?感谢。

1 个答案:

答案 0 :(得分:5)

500生产错误不是你应该猜测的。

您需要准确了解它发生的地点,地点和时间:

  • 启用Django Logging并记录,记录,记录
  • 设置ADMINS配置设置并接收有关重大错误的电子邮件
  

ADMINS

     

默认值:()(空元组)

     

列出获取代码错误通知的人的元组。什么时候   DEBUG = False并且视图引发异常,Django将通过电子邮件发送这些异常   拥有完整异常信息的人。

其他相关材料:

我知道它并没有为您提供答案,也没有直接解决您的问题,但我希望您明白我的意思,谢谢。