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>
    BalancerMember  http://172.16.100.7:8080 loadfactor=1
    BalancerMember  http://172.16.100.8:8080 loadfactor=1
    ProxySet  lbmethod=byrequests
</Proxy>

ProxyVia Off
ProxyRequests Off
ProxyPass / balancer://tomcat/ProxyPa***everse / 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/				
				ProxyPa***everse / 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/				
				ProxyPa***everse / balancer://tcsrvs/				
				<Location />
					Require all granted				
				</Location>
				<Location /balancer-manager>
					SetHandler balancer-manager					
					ProxyPass !					
					Require all granted				
				</Location>
			</VirtualHost>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章