如何排除Apache Mod_proxy的URL?

我们有两台Apache服务器作为前端,四台Tomcat服务器作为后端,使用mod_proxy模块作为负载均衡器。 现在,我们要从mod_proxy负载平衡器中排除单个tomcat url。 有什么方法或规则可以排除?

代理平衡器设置:

<Proxy balancer://backend-cluster1> BalancerMember http://10.0.0.1:8080 loadfactor=1 route=test1 retry=10 BalancerMember http://10.0.0.2:8080 loadfactor=1 route=test2 retry=10 </Proxy> 

您可以在完整的ProxyPass语句(您的示例缺失)之前排除带有感叹号(!)的mod_proxy的path – 它看起来像ProxyPass /path balancer://backend-cluster1 。 因此,要排除path,请添加:

 ProxyPass /my/excluded/path ! 

之前

 ProxyPass /my balancer://backend-cluster1 

您可以在代理指令之上进行重写,当用户尝试访问要排除的url时,会给用户一个404错误。 您将需要启用rewrite_module。

 <Location ~ ^/urltoblock($|/)> RewriteEngine On RewriteRule .* - [L,R=404] </Location>