码迷,mamicode.com
首页 > 其他好文 > 详细

解决Django 1.5非域名访问产生的500错误

时间:2014-09-22 11:08:02      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:http   io   os   ar   for   sp   on   c   ef   

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错误

标签:http   io   os   ar   for   sp   on   c   ef   

原文地址:http://my.oschina.net/ankh2008/blog/316822

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!