首页 > 代码库 > 解决Django 1.5非域名访问产生的500错误
解决Django 1.5非域名访问产生的500错误
Django 1.5开始提供了一个新的,而且是必需开启的特性:通过设置ALLOWED_HOSTS,来限制访问的域名。只有通过绑定好的域名才能访问站点,而通过IP地址或非绑定到此站点的方式,则会被拒绝(默认会产生一个500错误)。
这是一个非常棒的特性,但他也有一个副作用,那就是会产生一大堆的500错误,而如果不怀好意的人,通过扫描IP等方式骚扰你的服务器的话,会让你不敢其扰,而且在一定程度上也拖慢了系统的反应能力。毕竟产生500错误也是要消耗一些计算资源的,而且是昂贵的django资源!
解决的办法就是,在前端服务器上将非域名访问直接阻止掉,不让他透传到django上。如。在nginx上可以通过以下方式解决:
server { listen 80 default; location / { # or show another site return 403 "Forbidden"; } } server { listen 80; server_name $your_domain; location / { uwsgi_pass unix:$your_django_sock; include uwsgi_params; } }
参考:
http://stackoverflow.com/questions/17149435/avoiding-djangos-500-error-for-not-allowed-host-with-nginx
解决Django 1.5非域名访问产生的500错误
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。