5324jj 发表于 2017-2-13 14:26:33

httpd+tomcat cluster

httpd(proxy_http_module)+tomcat cluster,
httpd(proxy_ajp_module)+tomcat cluster;
httpd(proxy_http_module)+tomcat cluster,
配置Tomcat集群

在Tomcat服务器上分别创建index.jsp作为负载均衡的页面;

~]# mkdir /var/lib/tomcat/webapps/test/{classes,lib,WEB-INF} -pv
~]# cp /webapps/ROOT/index.jsp /var/lib/tomcat/webapps/test/

安装置httpd代理服务

~]# yum -y install httpd

安装完成后需要确保安装proxy_balancer_module (shared)
配置httpd服务器

~]# cd /etc/httpd/conf.d/
]# vim tomcat.conf
<Proxy balancer://tomcat>
    BalancerMemberhttp://172.16.100.7:8080 loadfactor=1
    BalancerMemberhttp://172.16.100.8:8080 loadfactor=1
    ProxySetlbmethod=byrequests
</Proxy>

ProxyVia Off
ProxyRequests Off
ProxyPass / balancer://tomcat/ProxyPassReverse / balancer://tomcat/<Proxy *>
    Order Allow,Deny
    Allow From all
</Proxy>

<Location />
    Order Allow,Deny
    Allow From all
</Location>

测试:

image image
依据测试,可正常使用httpd proxy_httpd_module进行负载;
会话粘性的实现方法:
对Tomcat主机的配置分别进行标识;

172.16.80.7
image
172.16.80.8
image
对httpd进行配置

配置其/etc/httpd/conf.d/tomcat.conf
第一行用于设定表明用户访问时是需要cookie;
Header add :添加header 首部
Set-Cookie :设置Cookie
route=TomcatA :于172.16.80.7中的JvmRoute保持一致
route=TomcatB :于172.16.80.8中的JvmRoute保持一致 ProxySet stickysession=ROUTEID中的ROUTEID和Set-cookie的值保持一致;

Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED                <proxy balancer://tcsrvs>
                BalancerMember http://172.18.100.67:8080 route=TomcatA loadfactor=1
                BalancerMember http://172.18.100.68:8080 route=TomcatB loadfactor=2
                ProxySet lbmethod=byrequests               
                ProxySet stickysession=ROUTEID            </Proxy>
               
            <VirtualHost *:80>
                ServerName lb.magedu.com
                ProxyVia On
                ProxyRequests Off
                ProxyPreserveHost On
                <Proxy *>
                  Require all granted               
                </Proxy>
                ProxyPass / balancer://tcsrvs/               
                ProxyPassReverse / balancer://tcsrvs/               
                <Location />
                  Require all granted               
                </Location>
            </VirtualHost>

管理接口,新建一个balancer-manager.conf;

<Location /balancer-manager>
    SetHandler balancer-manager
    ProxyPass !
    Require all granted
</Location>

测试

在访问172.16.80.6/test/时将一直是TomcatB;
image
在stop掉TomcatB的tomcat服务后访问才变为TomcatA;
image

balancer-manager管理 image
httpd(proxy_ajp_module)+tomcat cluster;

将http更改为ajp,并将端口更改为8009; <proxy balancer://tcsrvs> BalancerMember ajp://172.18.100.67:8009 BalancerMember ajp://172.18.100.68:8009 ProxySet lbmethod=byrequests </Proxy>

<VirtualHost *:80>
                ServerName lb.magedu.com               
                ProxyVia On
                ProxyRequests Off
                ProxyPreserveHost On
                <Proxy *>
                  Require all granted               
                </Proxy>
                ProxyPass / balancer://tcsrvs/               
                ProxyPassReverse / balancer://tcsrvs/               
                <Location />
                  Require all granted               
                </Location>
                <Location /balancer-manager>
                  SetHandler balancer-manager                  
                  ProxyPass !                  
                  Require all granted               
                </Location>
            </VirtualHost>
页: [1]
查看完整版本: httpd+tomcat cluster