日期:2014-05-16  浏览次数:20976 次

apache rewrite将指定URL转向指定的几个服务器

我们现有的是apache负载均衡到了6个不同的tomcat上面,今天遇到了需要将某一些指定的URL转发向指定的3个tomcat上的要求,肯定就是需要修改rewrite rule规则了,网上查了半天,都没有好的解决办法,后来偶然遇到RewriteMap,发现可以自定义函数,就使用了,如下:


RewriteMap servers rnd:/wd/apache2/conf/serversmap.txt
RewriteRule ^/(.+)(relax/phoneLottery)(.+) http://192.168.28.27:${servers:port}/$1$2$3 [P]
其中${servers:port}表示从RewriteMap servers 中获取key为port的值(rnd为random,表示随机获取),而这个值存在/wd/apache2/conf/serversmap.txt文件中

打开文件/wd/apache2/conf/serversmap.txt

more /wd/apache2/conf/serversmap.txt
port 8086|8085|8084

如此就能解决了。

另附上rewritemap的官方手册页面http://httpd.apache.org/docs/current/rewrite/rewritemap.html