Apache Http Server整合Tomcat集群

一.分布式原理

         通过Apache-Server作为中转服务器,实现多个tomcat服务器之间的分布式处理,用户直接请求Apache-Server,然后Apache-Server会将请求分发到具体的tomcat-server,之后tomcat-server响应客户请求并返回结果到Apache-Server,最后Apache-Server返回结果给用户。如下图:

 

二.安装tomcat

         tomcat集群可以根据用户需求和真实环境选择水平集群部署或者垂直集群部署,水平集群部署即在多台服务器上部署,当其中一台服务器宕机或者服务停掉后请求回被转发到其余服务器上而不影响适应,缺点是浪费网络和设备资源。垂直集群部署是指在同一台服务器部署多个tomcat应用,由于单个tomcat对内存和cpu的消耗比较小,该部署方式可以将部署服务器的内存和cpu的利用率最大,当其中一个tomcat停止后也回被分发到其余tomcat不影响使用,但如果整个服务器宕机也会造成服务无法访问,稳定性要比水平部署差一点。

       本文中示例是水平部署,将tomcat不是在两台机器上,由于是部署在多台机器上,有个好处是不会有tomcat端口号冲突问题,可以直接解压tomcat到两台服务器,无需修改任何配置,直接运行两个tomcat;本文使用的是apache-tomcat-7.0.72。

      在myeclipse新建一个空的web项目,并导出war包,分别拷贝到两个tomcat中的webapps下,如:test.war。为了区分两个tomcat将test项目中的index.jsp中的body内容改为tomcat1和tomcat2,(一般部几圈部署的项目部署的内容都是完全一样的,本文修改body内容只是为了后面的测试更直观)并分别访问两个tomcat中部署的项目。如下:

234050_HPoN_2559164.png   

234411_w4he_2559164.png

 

三.安装apache http server

      下载:apache http server 安装介质,本文下载的是:httpd-2.2.25-win32-x86-no_ssl.msi

双击运行:

此处的名称可以自己设置,其中server name即为服务域名,后续可以在安装配置文件中修改。

此处选择custom自定义安装目录

至此apache http server即安装完成。电脑右下角会出现一个apache的标志,可以通过该管理器对apache http server 进行起停。

000754_0XxN_2559164.png

000806_c6Bs_2559164.png

 

四.配置apache http server

1.修改server名称

        由于之前在安装的过程中我们设置的服务域名,如果用户当前安装服务器地址映射的即是之前填写的域名可以不用修改,如果是在自己电脑安装测试的可以找到%apache_home%\conf\httpd.conf文件打开,搜索ServerName找到之前配置的域名,更改位本机ip地址/或者127.0.0.1/或者localhost.

       修改完后重启apache http server

# If your host doesn't have a registered DNS name, enter its IP address here.
#
ServerName wangzhen.wz.com

        注:修改完配置之后,可以点击Test Configuration来测试你修改的配置文件是否正确,如果点击之后doc窗口一闪而过,说明你修改的配置文件没问题,如果doc窗口一直停留住,说明修改的配置有问题:

        002409_rY7j_2559164.png

        还一种方式是在本机host文件中添加域名映射,不用修改httpd.conf文件,如:

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost
	127.0.0.1       wangzhen.wz.com

        具体怎么处理看个人选择,本文选择的是在host中映射域名的方式,serverName修改完成之后可以在浏览器输入地址测试下我们安装的serverName,如果出现如下界面,则说明我们安装成功。

002027_BgJ7_2559164.png

2.下载mod_jk模块

           apache http server 与tomcat的连接是通过一个叫做mod_jk的模块联通起来的,我们首选要下在这个模块,本文使用的是mod_jk-1.2.31-httpd-2.2.3.so,并将该模块放入到%apache_home%\modules目录下,可以看到该目录下有很多同种格式的模块。

3.配置mod_jk

        在%apache_home%\conf\httpd.conf文件的最后,记住是最后,添加include conf/mod_jk.conf表示引入mod_jk.conf配置文件,既然引入了mod_jk.conf,而且该目录下又没有mod_jk.conf,所以我们要在同目录下手动创建一下mod_jk.conf文件,文件内容如下:

#加载mod_jk Module
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so


#指定workers.properties文件路径 也就是指定工作的tomcat路径
JKWorkersFile conf/workers.properties

#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器
JkMount /* controller

         同理,该配置文件种引入了指定tomcat工作路径的配置文件workers.properties,也需要手动创建一个workers.properties配置文件,内容如下:

worker.list = controller,tomcat1,tomcat2  #server 列表   
#========tomcat1========   
worker.tomcat1.port=8009       #ajp13 端口号,在tomcat下server.xml配置,默认8009   
worker.tomcat1.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址   
worker.tomcat1.type=ajp13   
worker.tomcat1.lbfactor = 2    #server的加权比重,值越高,分得的请求越多   
  
#========tomcat2========   
worker.tomcat2.port=8009       #ajp13 端口号,在tomcat下server.xml配置,默认8009   
worker.tomcat2.host=192.168.1.116  #tomcat的主机地址,如不为本机,请填写ip地址   
worker.tomcat2.type=ajp13   
worker.tomcat2.lbfactor = 1    #server的加权比重,值越高,分得的请求越多   
  
#========controller,负载均衡控制器========   
worker.controller.type=lb   
worker.controller.balanced_workers=tomcat1,tomcat2   #指定分担请求的tomcat   
worker.controller.sticky_session=1

         如果是垂直部署要注意ajp13 端口不能冲突,因为apache http server连接tomcat走的是ajp13 端口。水平部署的话就无所谓了。

         在该配置文件种指定我们第二部安装的tomcat地址,重新启动apache http server。通过apache http server 访问我们部署的test项目。连续刷新页面,可以看到如下效果:

004502_Lgcx_2559164.png

004604_GEjM_2559164.png

         请求通过apache http server有时被分发到本机的tomcat1上,有时被分发到1.116上的tomcat2上,到此处则表我们的tomcat集群初步部署成功。

 

五.session共享配置

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/wangzhen9005/blog/769333

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值