标签: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 io os ar for sp on c ef
原文地址:http://my.oschina.net/ankh2008/blog/316822