httpd系列-03-反向代理tomcat-balancer

声明

该文章由大牛 马哥 的相关linux视频资料整理而来。若认为内容侵权请及时通知本人。

相关文章


说明

最终结果

httpd-tomcat

  • 反向代理和后端tomcat之间的通信协议有两种
    • http
    • ajp(Apache Jserv Protocol)
  • 反向代理和后端tomcat之间的模块也有两种
    • mod_proxy
    • mod_jk

所以配置方式也就种了。
这里只说明使用mod_proxy的方式。

tomcat配置文件

c2:192.168.1.103-server.xml

<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

<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加载了相关的代理模块

[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配置文件

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值