Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。在Java的Web架构中,通常使用Tomcat和Nginx进行配合,Nginx作为反向代理服务器,可以对后台的Tomcat服务器负载均衡,也可以让Nginx处理静态页面的请求、Tomcat处理JSP页面请求达到动静分离的目的。

系统环境:

主机 操作系统 IP地址 软件包
Nginx服务器 CentOS 7.0 x86_64 192.168.100.25 nginx-1.6.0.tar.gz
Tomcat服务器1 CentOS 7.0 x86_64 192.168.100.26:8080 jdk-10.0.1_linux-x64_bin.rpm/apache-tomcat-8.5.11.tar.gz
Tomcat服务器2 CentOS 7.0 x86_64 192.168.100.27:8080 jdk-10.0.1_linux-x64_bin.rpm/apache-tomcat-8.5.11.tar.gz

软件包_百度下载 密码:6b7e

网站拓扑架构图:

Nginx+Tomcat 部署负载均衡集群

开始部署

一、Tomcat服务器1、Tomcat服务器2:

1. 安装jdk并设置java环境

#安装jdk软件包
rpm -ivh jdk-10.0.1_linux-x64_bin.rpm

#添加jdk的环境变量,新建java.sh并写入以下内容
vim /etc/profile.d/java.sh

    export JAVA_HOME=/usr/java/jdk-10.0.1
    export PATH=$JAVA_HOME/bin:$PATH

#加载环境变量
source /etc/profile.d/java.sh

2. 查看jdk版本信息

java -version

如下图表示jdk已经安装成功了
Nginx+Tomcat 部署负载均衡集群


3. 解压并安装tomcat

#解压缩软件包
tar zxvf apache-tomcat-8.5.11.tar.gz

#移动tomcat目录
mv apache-tomcat-8.5.11 /usr/local/tomcat8

4. 启动tomcat服务

#启动服务
/usr/local/tomcat8/bin/startup.sh

5. 默认tomcat运行在8080端口,检查服务是否成功启动

netstat -tunlp | grep 8080

Nginx+Tomcat 部署负载均衡集群

6. 创建站点目录

mkdir -p /web/webapp

7. 为站点新建首页文件index.jsp

vim /web/webapp/index.jsp

#以为下index.jsp内容
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
<html>
<head>
<title>hello</title>
</head>
<body>
<% out.println("<h1>This is tomcat 1 web.</h1>"); %>
</body>
</html>

8. 编辑tomcat主配置文件,以支持新站点:

vim /usr/local/tomcat8/conf/server.xml

#在<Host>标签内,新增第二行记录
<Context docBase="/web/webapp" path="" reloadable="false"></Context>

Nginx+Tomcat 部署负载均衡集群

9. 重启tomcat服务

#关闭服务
/usr/local/tomcat8/bin/shutdown.sh

#开启服务
/usr/local/tomcat8/bin/startup.sh

#关闭安全设置
setenforce 0

#关闭防火墙
systemctl stop firewalld.service

Tomcat服务器1 和 Tomcat服务器2 安装及配置等一样,只是测试网页内容有差异,具体网页内容显示如下图

Tomcat服务器1:

Nginx+Tomcat 部署负载均衡集群

Tomcat服务器2:

Nginx+Tomcat 部署负载均衡集群


二、Nginx服务器:

1.安装依赖包(需要连接网络或者通过系统镜像ISO文件安装)

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

2.创建管理用户nginx

useradd -M -s /sbin/nologin nginx

3.解压nginx,并进入解压后nginx目录

tar xzvf nginx-1.6.0.tar.gz -C /opt
cd /opt/nginx-1.6.0/

4.配置

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module //开启stub_status状态统计模块//

5.编译及安装

make && make install

6.nginx连接至系统命令区,方便命令使用

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

7.创建nginx管理脚本

vi /etc/init.d/nginx

#!/bin/bash
#chkconfig: - 99 20
#description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0

8.为nginx赋予执行权限,并加入系统服务管理

chmod +x /etc/init.d/nginx
chkconfig --add nginx

三、配置nginx负载均衡集群

1. 修改nginx配置文件

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

#http{}标签内添加以下命令
upstream tomcat_server {
server 192.168.100.6:8080 weight=1;
server 192.168.100.7:8080 weight=1;
}
#在location / {}标签内添加
location / {
root html;
index index.html index.htm;
proxy_pass http://tomcat_server; #通过proxy_pass方法进行代理至tomcat_server的服务器组,其中http://不能省略
}

Nginx+Tomcat 部署负载均衡集群

2. 检查nginx配置

nginx -t

3. 重启nginx服务

killall -1 nginx
#关闭selinux
setenforce 0
#关闭防火墙
systemctl stop firewalld.service

测试

客户机访问Nginx服务器IP地址:http://192.168.100.25/,通过不断的刷新浏览器测试,可以看到哦由于权重相同,页面在两个tomcat站点反复切换,这样说明负载均衡集群搭建成功了

Nginx+Tomcat 部署负载均衡集群

Nginx+Tomcat 部署负载均衡集群