web服务器经常会面临某些流氓IP段的访问,有时需要限制它们的访问以保证其他用户的正常访问流量。
最常见的方法是修改httpd.conf文件,例如:
<Directory />
Order deny,allow
Deny from all
Allow from 192.2.6.8
</Directory>
就表示根目录不允许任何人访问,只允许192.2.6.8这个指定IP访问。
但是当需要阻止或允许的IP或者IP段数量较多时,就不能都写在httpd配置文件里了,这时,可以通过建立.htaccess文件来控制访问权限。
首先,修改httpd.conf文件中,加入AllowOverride选项:
<Directory />
AllowOverride All
</Directory>
然后在对应的目录下(此处为根目录/下)放置.htaccess文件,文件内容如下:
Order allow,deny
allow from 218.202.227.0/24
allow from 1.0.1.0/24
allow from 1.0.2.0/23
allow from 1.0.8.0/21
allow from 1.0.32.0/19
allow from 1.1.0.0/24
allow from 1.1.2.0/23
allow from 1.1.4.0/22
deny from all
就可以允许文件中对应的IP段访问,从而起到过滤IP的作用了。
使用配置文件的方法的最大优点是简单,通过简单的配置就可以实现IP过滤功能;而最大的缺点就是当需要过滤的IP段很多(如2000以上)时,性能较差,在高并发时会影响服务器的性能。因为Apache自带的模块加载文件后,每次都会遍历查找ip是否匹配,效率较差。
下一篇将介绍如何自己开发一个插件,实现高性能的IP过滤~