设为首页 收藏本站
查看: 3007|回复: 0

[经验分享] apache与tomcat负载集群的3种方法

[复制链接]

尚未签到

发表于 2015-8-6 08:05:38 | 显示全部楼层 |阅读模式
  花了两天时间学习apache与tomcat的集成方法,现在把学习成果记录下来。

apache与tomcat负载集群集成方法有3种jk、jk_proxy、http_proxy

本次集成使用的软件版本:


apache:httpd-2.2.17-win32-x86-no_ssl.msi

tomcat:apache-tomcat-6.0.20.zip

jdk:jdk-6u14-windows-i586.exe  

本次测试是1个apache集成两个tomcat。

安装apache http server省略,访问地址为http://127.0.0.1:8081

安装tomcat,解压apache-tomcat-6.0.20.zip,测试时我是把两个tomcat分开放在不同的虚拟机,其中一个是和apache同一台虚拟机。

两个tomcat分别命名为worker2和worker3

先说tomcat.worker2的配置:

server.xml

(1)配置http监听端口,这里端口设为8079,该步骤非必要,只要不冲突就行了。






   (2)配置AJP监听端口,这里端口设为8077,该步骤非必要,只要不冲突就行了。






   (3)配置服务器标识,这里标识名配置为:worker2,添加jvmRoute="worker2",该步骤必须。






   在Engine节点启用集群配置,只需去掉Cluster节点前的注释就行了,该步骤必须,配置了集群才能实现Session复制,如果只有一个集群,只 按我下边的配置就行了,如果多个集群,则不能按此配置,tomcat服务器内的帮助文档/docs/cluster-howto.html,/docs /config/cluster.html有介绍,需要的可以参考下。







DSC0000.gif    要实现session复制,还需要在context.xml添加属性distributable="true",如下:






   如果不想在context.xml中添加distributable="true",还有另一方法是在应用程序的web.xml中添加,不过这方法我没有测试。

配置完成,访问地址为:http://127.0.0.1:8079

另一个tomcat.worker3的配置

server.xml









   context.xml配置tomcat.worker2一样。

配置完成,访问地址为:http://127.0.0.1:8078

注意:如果两个tomcat是放在同一台机内,server.xml可能还需要修改其它端口,请确认两个tomcat能正常启动。

在tomcat.worker2和tomcat.worker3的webapps文件夹添加同样的测试文件test"test.jsp







helloapp


   
SessionID:   


   访问http://127.0.0.1:8078/test/test.jsp和http://127.0.0.1:8079/test/test.jsp,确保能成功访问。

现在开始apache和tomcat的不同方式集成

1、jk方式集成

  

下载mod_jk-1.2.31-httpd-2.2.3.so,请下载合适的mod_jk版本,改名为mod_jk.so放进modules文件夹内

修改conf/httpd.conf配置


LoadModule jk_module modules/mod_jk.so

JkWorkersFile conf/workers.properties

JkLogFile logs/mod_jk.log

JkLogLevel debug

JkMount  /*.do loadbalancer

JkMount  /*.jsp loadbalancer  
增加conf/workers.properties文件,添加内容





worker.list=loadbalancer
worker.worker2.port=8077   #ajp的监听端口
worker.worker2.host=108.88.3.105
worker.worker2.type=ajp13
worker.worker2.lbfactor=1
worker.worker3.port=9009
worker.worker3.host=127.0.0.1
worker.worker3.type=ajp13
worker.worker3.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=worker2,worker3 #这里在的worker2、worker3为需要与上边tomcat设置的别名一致
worker.loadbalancer.sticky_session=1
   配置完成任务,访问http://127.0.0.1:8081/test/test.jsp,检查是否能正常访问。

2、ajp_proxy

  

去掉httpd.conf文件中下面内容的注释(删掉#号),开启下边的配置





Include conf/extra/httpd-vhosts.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
   注意:

除了mod_proxy.so,mod_proxy_balancer.so,mod_proxy_connect.so

如果是采用ajp_proxy,需要加载mod_proxy_ajp.so这个模块;

如果是采用http_proxy,需要加载mod_proxy_http.so这个模块;

httpd.conf,删除刚才jk方式的配置内容,增加下边的配置


ProxyRequests Off



BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=worker3

BalancerMember ajp://108.88.3.105:8077 loadfactor=1 route=worker2

  
conf/extra/httpd-vhosts.conf增加配置






ServerAdmin xxxx@xxx.com
ServerName localhost
ServerAlias localhost
ProxyPass / balancer://loadbalancer/ stickysession=jsessionid nofailover=On
ProxyPassReverse / balancer://loadbalancer/
ErrorLog "logs/loadbalancer-error.log"
CustomLog "logs/loadbalancer-access.log" common

   配置完成任务,访问http://127.0.0.1:8081/test/test.jsp,检查是否能正常访问。

3、http_proxy


http_proxy的配置与ajp_proxy类似,修改方法2的httpd.conf配置如下,其它不变


ProxyRequests Off



BalancerMember http://127.0.0.1:8078 loadfactor=1 route=worker3
BalancerMember http://108.88.3.105:8079 loadfactor=1 route=worker2

   配置完成任务,访问http://127.0.0.1:8081/test/test.jsp,检查是否能正常访问。
  文件下载:
  http://download.iyunv.com/download/li1669852599/8153513

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-94554-1-1.html 上篇帖子: 对apache开源数据库工具dbutils微改第一版 下篇帖子: Apache 无法启动
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表