windows+apache+Session Sticky的Tomcat集群

软件列表:apache-tomcat-7.0.69-windows-x64

apache_2.2.4-win32-x86-no_ssl

搭建步骤:
1、解压apache-tomcat-7.0.69-windows-x64,命名为tomcat1/tomcat2

2、修改端口文件server.xml

修改里面的Http端口8080 为规划的端口号

修改里面的AJP端口8009 为规划的端口号

修改里面的shutdown端口 8005 位规划的端口号

端口列表:

Tomcat1 8082 8029 8025

Tomcat2 8083 8039 8035

3、安装apache_2.2.4-win32-x86-no_ssl

全部采用默认安装,当到以下的步骤时
这里写图片描述

都写下,然后下面的选择比较重要,这个一般本地测试选择8080,生产上面一般选择80.接下去的步骤默认。

安装完毕后:

以下为可能碰到的错误:

报错1 :如果操作系统是win8或者是win7可能会报如下错误:

拒绝访问. :Failed to open the WinNT service manager

原因及解决方法:

主要是需要管理员权限才行。需要在打开cmd的时候用管理员身份打开,然后执行以上命令即可;也可以写一个bat文件以管理员身份也可以。

如果apache安装之后,没有服务,也可以通过命令来安装,挺方便。

报错2:Errors reported here must be corrected before the service can be started.

在启动httpd服务的时候 在bin目录下:httpd –k install报以上错误

打开运行 找到cmd ,右键打开cmd.exe ,选择以管理员身份运行

D:\Program Files\Apache Software Foundation\Apache2.2\bin>httpd -k install
Installing the Apache2.2 service
The Apache2.2 service is successfully installed.
Testing httpd.conf….
Errors reported here must be corrected before the service can be started.

然后在windows服务里,把apache启动即可。

集群配置:

使用Apache 进行负载分发,Session使用Session Sticky模式。

负载分发
一方面是水平扩展,通过接入代理进行负载分发,分发到后台多个实际的业务处理逻辑单元上。这种接入代理可以是nginx,Apache等软件负载,也可以是类似F5等硬件负载。具体方式参见nginx负载或Apache负载等。

Session处理
另一方面就是多个业务逻辑单元之间的Session处理,处理方式有两种,一种是Session sticky模式,另外一种是Session共享模式。

这里写图片描述

搭建步骤
安装部署Tomcat
注意:多台Tomcat之间毫无关联,不需要做任何配置。

配置负载分发
以下配置修改都是在Apache的conf/httpd.conf配置文件中完成

1 修改加载mod proxy需要的模块

找到配置中被注释掉的几行,删除注释,使Apache在启动的时候加载如下模块

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_connect_module modules/mod_proxy_connect.so

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

LoadModule proxy_http_module modules/mod_proxy_http.so

LoadModule status_module modules/mod_status.so

LoadModule headers_module modules/mod_headers.so

2 conf/httpd.conf配置文件的最后面增加,最终配置如下:

Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
<Proxy balancer://mycluster>
BalancerMember http://10.100.81.27:8082 route=1
BalancerMember http://10.100.81.27:8083 route=2
ProxySet stickysession=ROUTEID
</Proxy>
ProxyPass / balancer://mycluster/

说明:

  • 给HTTP请求头部添加路由标识

Header add Set-Cookie “ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/” env=BALANCER_ROUTE_CHANGED

  • 注意使用的ip和端口,ip不要用localhost,端口是http的访问端口,同时stickysession要与加入cookie中的标示一致。

验证
注意Apache是监听localhost:8080地址的,用http://localhost:8080/**进行验证。

多次刷新,cookies中的ROUTEID是一致的。新打开多个浏览器,刷新,尝试,看ROUTEID,同一个浏览器的ROUTEID是不会变化的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值