通常情况下,单个Tomcat站点由于可能出现单点故障而无法应付客户复杂多样的请求,所以需要结合Nginx强大的处理并发连接能力,将Nginx作为负载均衡器,用于调用Tomcat服务器,从而实现负载均衡群集。

Nginx+Tomcat网站拓扑架构

Nginx+Tomcat负载均衡群集_第1张图片

实验环境

主机 操作系统 IP地址 主要软件
Nginx服务器 Redhat6.5 192.168.100.107 Nginx-1.12
Tomcat服务器1 Redhat6.5 192.168.100.109:8080 ①jdk-8u91 ②apache-tomcat-8.5.16
Tomcat服务器2 Redhat6.5 192.168.100.109:8080 ①jdk-8u91 ②apache-tomcat-8.5.16

Nginx服务器配置

手动编译Nginx时需要检查依赖包是否存在,然后安装所需依赖包:

yum install gcc gcc-c++ pcre-devel zlib-devel openssl-devel -y

解压安装Nginx:

useradd -s /sbin/false www //添加Nginx系统账户
tar zxvf nginx-1.12.0.tar.gz -C /opt //解压Nginx

cd /opt/nginx-1.12.0/

./configure \
--prefix=/usr/local/nginx \  //指定安装路径
--user=www \                //指定用户
--group=www \               //指定组  
--with-file-aio \           //启用文件修改支持
--with-http_stub_status_module \        //启用状态统计
--with-http_gzip_static_module \  //启用gzip静态压缩
--with-http_flv_module \          //启用flv模块,提供寻求内存使用基于时间的偏移量文件
--with-http_ssl_module   //启用SSL模块

编辑Nginx主配置文件,让Nginx可以调度提供服务的Tomcat服务器:

vim /usr/local/nginx/conf/nginx.conf

keepalive_timeout  65;
    #gzip  on;
    upstream tomcat_server {                //添加服务器地址池,配置权重为1;
              server 192.168.100.109:8080 weight=1;
              server 192.168.100.111:8080 weight=1;
            }
(......省略代码)            
location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://tomcat_server;   //添加行,调用前面地址池名称

/usr/local/nginx/sbin/nginx -t //检查配置文件
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
nginx //启动Nginx服务
netstat -ntap | grep nginx //查看服务是否开启
service iptables stop
setenforce 0

Tomcat服务器配置

1、配置Java环境

tar zxvf jdk-8u91-linux-x64.gz -C /opt 解压jdk软件包
mv jdk1.7.0_65/ /usr/local/java 设置工作目录
cd /etc/profile.d/ 配置环境变量
vim java.sh 配置环境变量脚本

export JAVA_HOME=/usr/local/java     //设置Java根目录//
export PATH=$PATH:$JAVA_HOME/bin     //在PATH环境变量中添加

source java.sh //使环境变量立即生效

2、安装配置Tomcat1

tar zxvf apache-tomcat-8.5.16.tar.gz -C /opt/
mv apache-tomcat-8.5.16/ /usr/local/tomcat8
/usr/local/tomcat8/bin/startup.sh 启动tomcat
netstat -ntap | grep 8080 监听8080端

创建测试页:

mkdir -pv /web/webapp1 //创建web目录//
vim /web/webapp1/index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

 
  JSP test1 page
 
 
  <% out.println("Welcome to test site,http://www.test1.com");%>  
 

vim /usr/local/tomcat7/conf/server.xml
编辑Tomcat主配置文件,添加首页内容站点



     //添加如下部分,以及站点目录

配置完成后访问其服务:
Nginx+Tomcat负载均衡群集_第2张图片

3、安装配置Tomcat2

Tomcat配置与Tomcat1服务器完全一致,此处为了区分当Nginx服务器调度时是两个不同的Tomcat服务器,需要在Tomcat测试页中修改内容为test2;
Nginx+Tomcat负载均衡群集_第3张图片

4、测试负载均衡效果

当访问Nginx服务器时,Nginx服务会调用后面提供服务的Tomcat服务器,为了实现负载均衡,每次调用的服务器并不是同一个服务器:
Nginx+Tomcat负载均衡群集_第4张图片
Nginx+Tomcat负载均衡群集_第5张图片