Tomcat lb cluster

配置 LB Tomcat:

在server1上安装ngixn服务器,提供反向代理功能
配置server2和server3为tomcat主机,作为nginx的后端服务器。

server2和server3:
[root@server2 local]# mkdir -pv /data/webapps/ROOT
[root@server2 local]# mkdir /data/webapps/logs
[root@server2 local]# mkdir -pv /data/webapps/ROOT/{lib,classes,WEB-INF,META-INF}
[root@server2 local]# vim /data/webapps/ROOT/index.jsp
<%@ page language="java"%>
<%@ page import="java.util.*"%>
<html>
    <head>
        <title>JSP Test Page on Web1</title>
    </head>
    <body>
        <% out.println("Hello web1"); %>
    </body>
</html>
[root@server2 local]# vim /usr/local/tomcat/conf/server.xml 
 <Host name="web1.wtt.com" appBase="/data/webapps" unpackWARs="true" autoDeploy="true">
      <Context path="" docBase="ROOT" />
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/data/logs"
               prefix="web1_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

      </Host>
并且修改默认虚拟主机为web1.wtt.com
<Engine name="Catalina" defaultHost="web1.wtt.com">

对于server3来说只需把虚拟主机的name改成web2.wtt.com,并且把index.jsp页面的title改成 <title>JSP Test Page on Web2</title>、println的内容改成Hello web2,然后将默认主机改为web2.wtt.com<Engine name="Catalina" defaultHost="web2.wtt.com">

开启tomcat服务就可以访问到两个tomcat主机了
在这里插入图片描述
在这里插入图片描述
接下来配置nginx服务器
在http{}部分添加后端主机

upstream tcsrvs {
        server web1.wtt.com:8080;
        server web2.wtt.com:8080;

在server{}部分配置反向代理

location ~* (\.jsp|.do) {
	proxy_pass http://tcsrvs;
}

在nginx本机做好域名解析

172.25.44.2 web1.wtt.com
172.25.44.3 web2.wtt.com

在客户端访问代理主机,会对后端主机做负载均衡
在这里插入图片描述

基于source_ip hash接下来我们做session sticky

只需在后端主机部分加上 ip_hash; 然后重载服务即可

upstream tcsrvs {
        ip_hash;
        server web1.wtt.com:8080;
        server web2.wtt.com:8080;
}

在这里插入图片描述

#使用httpd做代理服务器
有三种解决方案:

(1)apache:
			 proxy_module 
			 proxy_http_module
			 proxy_balancer_module
		tomcat:
			http connector
(2)apache:
			proxy_module
			proxy_ajp_module
			proxy_balancer_module
		 tomcat:
			ajp connector
(3)apache:
			mod_jk
		tomcat:
			ajp connector

在目前的生产环境中第三种用的不是很多了,所以我们接下来配置前两种

第一种方法的实现:
我们在上篇博客配置的lamt的基础上做如下配置
server1:
停掉nginx主机。
安装httpd服务,并做如下配置

[root@server1 ~]# vim /etc/httpd/conf.d/vhosts.conf
<proxy balancer://lbcluster1>
    BalancerMember http://172.25.44.2:8080 loadfactor=10 route=TomcatA
    BalancerMember http://172.25.44.3:8080 loadfactor=10 route=TomcatB
</proxy>

<VirtualHost *:80>
    ServerName web1.wtt.com
    proxyVia On
    proxyRequests Off
    ProxyPreserveHost  On
<Proxy *>
    Order deny,allow
    allow from all
</Proxy>
    proxyPass / balancer://lbcluster1/
    ProxyPassReverse / balancer://lbcluster1/
    <Location />
        Order deny,allow
        allow from all
    </Location>
</VirtualHost>

这里我们更改一些index.jsp页面
server2:

[root@server2 ~]# vim /data/webapps/ROOT/index.jsp
<%@ page language="java" %>
<html>
    <head><title>TomcatA</title></Haed>
    <body>
        <h1><font color="red">TomcatA.wtt.com</font></h1>
        <table align="centre" border="1">
            <tr>
                <td>Session ID</td>
        <% session.setAttribute("wtt.com","wtt.com"); %>
                <td><%=session.getId()%></td>
            </tr>
            <tr>
                <td>Created on</td>
                <td><%=session.getCreationTime() %></td>
            </tr>
        </table>
    </body>
</html>
[root@server2 ~]# vim /usr/local/tomcat/conf/server.xml 
<Engine name="Catalina" defaultHost="web1.wtt.com" JvmRoute="TomcatA">

server3与server2配置类似,只不过把TomcatA改成TomcatB
开启服务后访问就可以看到负载均衡效果了
在这里插入图片描述
在这里插入图片描述

接下来实现第二种:
只需在第一种的基础上做出如下修改

<proxy balancer://lbcluster1>
    BalancerMember ajp://172.25.44.2:8009 loadfactor=10 route=TomcatA
    BalancerMember ajp://172.25.44.3:8009 loadfactor=10 route=TomcatB
</proxy>

重启服务后访问web服务器就可以看到负载均衡效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值