软件列表: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是不会变化的。