某些业务情景下,禁止特定链接对外开放,或者只允许指定ip访问特定链接。负载均衡工具为apache时,可以使用Rewrite(请求重写)功能进行请求判断,如果不符合要求,就把请求重写。
业务场景1:后台链接不对公网ip开放
apache版本:2.2
1.修改conf\httpd.conf文件,去掉下面内容前的#号,目的是打开重写标签
LoadModule rewrite_module modules/mod_rewrite.so
2.在conf\httpd.conf文件标签中加入
RewriteEngine on
RewriteCond %{REQUEST_URI} ^(/superUser)
RewriteRule ^(.*)$ www.baidu.com [L,R=302]
第一行表示打开重写开关
第二行为正则表达式的内容,RewriteCond标签相当于if,REQUEST_URI是请求链接,^(/superUser)表示包含"/superUser",
第三行意思是满足上面的要求,就发生链接重写,重写后的地址为"www.baidu.com"
业务场景2:某个链接只对某些ip开放
1.和场景1相同,开启重写开关
2.在conf\httpd.conf文件标签中加入
RewriteEngine on
RewriteCond %{REQUEST_URI} ^(/superUser)
RewriteCond %{REMOTE_ADDR} !^(172.22.23.1) [NC,OR]
RewriteCond %{REMOTE_ADDR} !^(172.22.23.2) [NC]
RewriteRule ^(.*)$ / www.baidu.com [L,R=302]
此配置的意思:在访问链接包含"/superUser"时,假如访问的ip不等于"172.22.23.1"或者不等于"172.22.23.2",拒绝请求,跳转到百度。[NC,OR] nc代表不区分大小写,or代表或者。
其他场景下可以对RewriteEngine的正则表达进行相应调整
参考文章:apache实现手机端访问跳到wap站点