Django DEBUG=Fasle时候出现Internal Server Error

项目在实际发布的时候,需要我们关闭调试功能,保障网站安全。设置在settings.py文件中,将DEBUG=True改为False。

大部分人在改完这项后就尝试重启django的服务,却发现网站返回错误,页面显示“Internal Server Error”。

通过谷歌开发者工具或者查看服务器日志等其他手段可以发现,此刻页面返回状态码为500。

通过在网上查找答案,发现这里少设置了一步,ALLOWED_HOSTS的官方文档 里面指出:

When DEBUG is True or when running tests, host validation is disabled; any host will be accepted. Thus it’s usually only necessary to set it in production.

大体意思是,DEBUG设置为True或者运行在测试环境中,关于host的验证是关闭的,任意的host都可以被接受。在实际的应用环境中这项(ALLOWED_HOSTS)是必须设定的。

因此,在将DEBUG置位为True的时候,需要额外设置这一项。加入要部署的网站为200.200.200.200,则设置

ALLOWED_HOSTS = ['200.200.200.200']。

更多的参考可以参看:

http://getluky.net/2013/02/21/django-debugfalse-and-allowed_hosts/

http://stackoverflow.com/questions/238081/how-do-you-log-server-errors-on-django-sites/6395837#6395837

你可能感兴趣的:(Django DEBUG=Fasle时候出现Internal Server Error)