Tomcat反向代理+负载均衡的四种方法配置
环境拓扑
环境说明:
IP地址 | 功能描述 | |
nginx or httpd | 172.16.4.100 | 代理服务器,将用户请求分发到后端的Tomcat服务器实现反向代理和负载均衡 |
Tomcat-01 | 172.16.4.101 | 后端实际提供服务的服务器 |
Tomcat-02 | 172.16.4.102 | 后端实际提供服务的服务器 |
系统环境都如下所示:
[root@nginx ~]# cat /etc/RedHat-release
CentOS release 6.6 (Final)
[root@bogon ~]# uname -rm
2.6.32-504.el6.x86_64 x86_64
此文章一共有四个实验:
1、 使用nginx服务器实现反向代理Tomcat并实现负载均衡;
2、 使用httpd的mod_proxy_http模块,实现Tomcat负载均衡;
3、 使用httpd的mod_proxy_ajp模块,实现Tomcat负载均衡;
4、 使用httpd的mod_jk模块,实现Tomcat的服务均衡。
后端Tomcat配置
四种反代+负载均衡都是使用此Tomcat部署。
Tomcat-01部署
安装jdk
[root@tomcat-1 ~]# rpm -ivh jdk-7u67-linux-x64.rpm
设置Java的环境变量
[root@tomcat-1 ~]# vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/latest #设置家目录
export PATH=$JAVA_HOME/bin:$PATH #设置命令路径
[root@tomcat-1 ~]# . /etc/profile.d/java.sh
使用-version输出Java的版本号如果可以输出那么表示Java环境部署ok
[root@tomcat-1 ~]# java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04,mixed mode)
安装tomcat,并添加一个应用程序实例
[root@tomcat-1 ~]#tar xf apache-tomcat-8.0.23.tar.gz -C /usr/local/
[root@tomcat-1 ~]#cd /usr/local/
[root@tomcat-1 local]# ln -s apache-tomcat-8.0.23/tomcat
[root@tomcat-1 local]# cd tomcat/
[root@tomcat-1 tomcat]# mkdir -p/usr/local/tomcat/webapps/testapp/{WEB-INF,classes,lib,META-INF}
[root@tomcat-1 tomcat]# vim/usr/local/tomcat/webapps/testapp/index.jsp
<%@ page language="java" %>
<html>
<head><title>TomcatA</title></head>
<body>
<h1><fontcolor="red">TomcatA.xmfb.com</font></h1>
<tablealign="centre" border="1">
<tr>
<td>Session ID</td>
<%session.setAttribute("xmfb.com","xmfb.com"); %>
<td><%= session.getId() %></td>
</tr>
<tr>
<td>Created on</td>
<td><%= session.getCreationTime() %></td>
</tr>
</table>
</body>
</html>
设置tomcat环境变量
[root@tomcat-1 tomcat]# vim /etc/profile.d/tomcat.sh
export CATALINA_HOME=/usr/local/tomcat
export PATH=$CATALINA_HOME/bin:$PATH
[root@tomcat-1 tomcat]# . /etc/profile.d/tomcat.sh
设置完成启动服务
[root@tomcat-1 tomcat]# catalina.sh start
访问testapp应用程序正常
Tomcat-02部署
除了提供的测试页面不同之外,其他设置过程都一样
[root@tomcat-2 tomcat]# vim/usr/local/tomcat/webapps/testapp/index.jsp
<%@ page language="java" %>
<html>
<head><title>TomcatB</title></head>
<body>
<h1><font color="blue">TomcatB.xmfb.com</font></h1>
<tablealign="centre" border="1">
<tr>
<td>Session ID</td>
<%session.setAttribute("xmfb.com","xmfb.com"); %>
<td><%= session.getId() %></td>
</tr>
<tr>
<td>Created on</td>
<td><%= session.getCreationTime() %></td>
</tr>
</table>
</body>
</html>
设置完成访问结果如下
Nginx反向代理+负载均衡Tomcat
安装nginx
[root@nginx ~]# yum -y install nginx
启动服务
[root@nginx ~]# service nginx start
访问nginx能否正常访问
在http字段定义upstream,设置后端Tomcat主机和端口,并设置健康状态检查
[root@nginx ~]# vim /etc/nginx/nginx.conf
upstreamupservers {
server172.16.4.101:8080 max_fails=2 fail_timeout=1;
server172.16.4.102:8080 max_fails=2 fail_timeout=1;
}
更多Tomcat相关教程见以下内容: