Java小强个人技术博客站点    手机版
当前位置: 首页 >> 服务器 >> Apache Module mod_proxy 不同请求分发不同节点

Apache Module mod_proxy 不同请求分发不同节点

109910 服务器 | 2014-8-8

Apache Module mod_proxy 的ProxyPass指令使用 参考 http://www.javacui.com/service/111.html

其实这里要说的也不是不同节点,也可以是不同分发方式。因为之前 Win2003下Apache与Tomcat搭建集群环境(http://www.javacui.com/service/48.html)时,对于每个节点的方式,使用的基于AJP的方式方式,而不是HTTP的。如果是 Linux下apache+tomcat+jk集群(http://www.javacui.com/service/49.html),则可以定义不同的控制器,在Apache的mod_proxy模块中,定义不同的ProxyPass即可实现。

 

这里我们定义两个节点,节点8011上部署了一个WEB工程test,节点8021上部署了一个WEB工程test2,Apache分发时,我们让访问 /test2 的使用HTTP访问节点8021,让访问 /test 的访问AJP节点8011(注意其AJP端口是8019)。那么在Apache上的配置为:

配置文件 httpd-vhosts.conf:

NameVirtualHost *:8008
<VirtualHost *:8008>   
 ServerAdmin webmaster@wuxian.com
 ServerName 192.168.1.111
 ServerAlias 192.168.1.111 localhost
 ProxyPass /test2 http://localhost:8021/test2
 ProxyPassReverse /test2 http://localhost:8021/test2
 ProxyPass /test/ balancer://cluster/ stickysession=jsessionid nofailover=On   
 ProxyPassReverse /test/ balancer://cluster/
 ErrorLog "logs/lbtest-error.log"  
 CustomLog "logs/lbtest-access.log" common  
</VirtualHost>

配置文件 httpd.conf 最底部,其实和原来一样,但是要在端口后面加访问的工程路径:

ProxyRequests Off   
<proxy balancer://cluster>
   BalancerMember ajp://127.0.0.1:8019/test/ loadfactor=1 route=jvm1 
</proxy>

则访问8008的 test 和 test2 时,会如下:

QQ截图20140808110801.png

可以看到,不同的请求是分发到了不同的节点上,基于不同的访问方式。

 

还要注意的是,配置的 /test 和 /test/ 是一样的吗?

其实不管一样不一样,只要你和后面的代理路径一致,就不会有问题。如果不一致,那这样的写法就会有区别了,具体自己实验下即可。

推荐您阅读更多有关于“ Tomcat apache 集群 mod_proxy ProxyPass 不同路径 不同请求 分发 ”的文章

上一篇:关于友言评论需要重复审核的反馈 下一篇:使用FlashPaper 实现JSP在线阅读

猜你喜欢

发表评论: