Tomcat1 的修改conf/server.xml
1.1 <Server port="8005" shutdown="SHUTDOWN">中的8005修改为18005
1.2修改<Service name="Catalina">下的
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />中的8080为18080
1.3<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />修改为18009
1.4<Engine name="Catalina" defaultHost="localhost">在末尾加 jvmRoute="jvm1"
1.5<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>改为
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
</Cluster>
1.6要实现session复制,还需要在context.xml添加属性distributable="true",如下:
<Context distributable="true">
如果不想在context.xml中添加distributable="true",还有另一方法是在应用程序的web.xml中添加<distributeable/>,不过这方法我没有测试。
配置完成之后,启动两个Tomcat测试一下Tomcat是否可以正常启动
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so #如果是采用ajp_proxy,需要加载mod_proxy_ajp.so这个模块;
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so 如果是采用http_proxy,需要加载mod_proxy_http.so这个模块;
LoadModule ssl_module modules/mod_ssl.so
用文本编辑器打开${APACHE_HOME}/conf/extra/httpd-vhosts.conf文件,注释掉所有的dummy-host,在最后面追加如下内容
下载mod_jk-1.2.31-httpd-2.2.3.so,请下载合适的mod_jk版本,改名为mod_jk.so放进modules文件夹内
修改conf/httpd.conf配置
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel debug
JkMount /*.do loadbalancer
JkMount /*.jsp loadbalancer
增加conf/workers.properties文件,添加内容
最后启动Apache2.4,在页面中输入localhost:80\test\test.jsp进行测试。(访问apache的端口,而不是tomcat端口)
lbmethod表示:负载载均衡策略。
lbmethod=byrequests 按照请求次数均衡(默认)
lbmethod=bytraffic 按照流量均衡
lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器)
ProxyPass表示:所有的test请求都会重定向到balancer://mycluster/处理。balancer是内置负载。
ProxyPassReverse表示:反向代理,也就是将所有的请求反向代理到负载均衡后的应用url路径中。
stickysession表示:进行Session复制使用。
热备份的实现很简单,只需添加 status=+H 属性,就可以把某台服务器指定为备份服务器:
此时请求总是流向 8080这个url ,一旦8080挂掉, Apache会检测到错误并把请求分流给7080。Apache会每隔几分钟检测一下8080的状况,如果8080恢复,就继续使用8080。