Apache通过ip和user_agent限制访问

来源:互联网 发布:腾讯游戏数据分析 编辑:程序博客网 时间:2024/06/07 20:27

对应Nginx的限制访问,今天看了下Apache手册,总结了一下Apache的限制访问。

限制IP访问

与Nginx中的IP限制指令类似,Apache也是通过Allow和Deny指令限制访问,不同的是首字母大写且后面要加from。

Nginx中的allow和deny指令的顺序是与iptable类似的,匹配到合适的规则就停止继续匹配,若都没有匹配到的话,则默认为allow。

Apache与Nginx的指令顺序区别很大,Apache通过Order指令指定匹配顺序,默认为Order Deny,Allow

Order指令对应Deny,AllowAllow,Deny两种顺序,如果指定的规则都没有匹配时将采取逗号后面的规则。

对于Order Deny,Allow,默认为Allow
先检查Deny指令,如果Deny指令匹配且不在Allow指令中匹配,则Deny。
如果Deny指令不匹配,或Deny指令和Allow指令都匹配,则Allow。

对于Order Allow,Deny,默认为Deny
先检查Allow指令,如果Allow指令匹配且不在Deny指令匹配,则Allow。
如果Allow指令不匹配,或者Allow和Deny指令都匹配,则Deny。

仅限 127.0.0.1 访问

#方案一Order Deny,AllowDeny from allAllow from 127.0.0.1#方案二Order Allow,DenyAllow from 127.0.0.1

限制 10.1.2.3 访问

#方案一Order Allow,DenyAllow from allDeny from 127.0.0.1#方案二Order Deny,AllowDeny from 127.0.0.1

官方文档:
https://httpd.apache.org/docs/2.4/mod/mod_access_compat.html

相关博客:
http://www.cnblogs.com/top5/archive/2009/09/22/1571709.html

限制UserAgent访问

通过Rewrite规则,限制UserAgent访问

限制Jmeter测试工具的访问

# 通过SetEnvIf指令SetEnvIf User-Agent "^Apache.*Java" bad_uaDeny from env=bad_ua# 通过Rewrite指令RewriteEngine onRewriteCond "%{HTTP_USER_AGENT}"  "^Apache.*Java"RewriteRule .* - [F]

SetEnvIf指令文档
https://httpd.apache.org/docs/2.4/zh-cn/mod/mod_rewrite.html#rewritecond

Rewrite文档
https://httpd.apache.org/docs/2.4/zh-cn/mod/mod_setenvif.html#setenvif

原创粉丝点击