声明
该文章由大牛 马哥 的相关linux视频资料整理而来。若认为内容侵权请及时通知本人。
相关文章
[TOC]
说明
最终结果
- 反向代理和后端tomcat之间的通信协议有两种
- http
- ajp(Apache Jserv Protocol)
- 反向代理和后端tomcat之间的模块也有两种
所以配置方式也就四种了。
这里只说明使用mod_proxy的方式。
tomcat配置文件
c2:192.168.1.103-server.xml
1 2 3 4 5 6 7 8 9 10 11 12 13
| <Engine name="Catalina" defaultHost="c2" jvmRoute="tomcatA"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="c2" appBase="/web" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="webapps/test-1" reLoadable="true"/> </Host> </Engine>
|
c3:192.168.1.163-server.xml
1 2 3 4 5 6 7 8 9 10 11 12 13
| <Engine name="Catalina" defaultHost="c3" jvmRoute="tomcatB"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="c3" appBase="/web" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="webapps/test-1" reLoadable="true"/> </Host> </Engine>
|
mod_proxy方式
环境准备
请确保httpd加载了相关的代理模块
1 2 3 4 5 6 7 8 9 10
| [root@c2 httpd]# service httpd -D DUMP_MODULES | grep proxy proxy_module (shared) proxy_connect_module (shared) proxy_ftp_module (shared) proxy_http_module (shared) proxy_fcgi_module (shared) proxy_scgi_module (shared) proxy_ajp_module (shared) proxy_balancer_module (shared) proxy_express_module (shared)
|
httpd配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| ProxyRequests Off Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED <proxy balancer://lb_cluster_1> BalancerMember ajp://c2:8009 loadfactor=1 route=tomcatA BalancerMember ajp://c3:8009 loadfactor=1 route=tomcatB #BalancerMember http://c2:8080 loadfactor=1 route=tomcatA #BalancerMember http://c3:8080 loadfactor=1 route=tomcatB #ProxySet lbmethod=bybusyness|bytraffic|byrequests ProxySet stickysession=ROUTEID </proxy> <VirtualHost *:80> #ServerName my-proxy-host ProxyVia Off ProxyPass / balancer://lb_cluster_1/ nofailover=Off ProxyPassReverse / balancer://lb_cluster_1/ <Proxy *> Require all granted </Proxy> <Location /> Require all granted </Location> </VirtualHost>
|
参数说明
- lbmethod:apache实现负载均衡的调度方法,
- 默认是byrequests,即基于权重将统计请求个数进行调度
- bytraffic则执行基于权重的流量计数调度
- bybusyness通过考量每个后端服务器的当前负载进行调度
- maxattempts:放弃请求之前实现故障转移的次数,默认为1,其最大值不应该大于总的节点数
- nofailover:取值为On或Off,设置为On时表示后端服务器故障时,用户的session将损坏;因此,在后端服务器不支持session复制时可将其设置为On
- stickysession:调度器的sticky session的名字,根据web程序语言的不同,其值为JSESSIONID或PHPSESSIONID
- 其他参数请参考 httpd系列-02-反向代理tomcat-standalone