Nginx是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 服务器。 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。 基于 Nginx 的高并发连接处理,我们可以通过 Tomcat 作为应用服务器, Nginx 作为负载均衡器来设置负载均衡群集。

部署目标

	搭建两台 Tomcat 服务器,使用 Nginx 服务器实现反向代理去调度实现负载均衡。

部署环境

主机 操作系统 IP地址 主要软件
Nginx 服务器 CentOS 7.4 x86_64 192.168.100.203 nginx-1.12.0.tar.gz
Tomcat 服务器1 CentOS 7.4 x86_64 192.168.100.201 ① jdk-8u91-linux-x64.tar.gz 、② apache-tomcat-8.5.16.tar.gz
Tomcat 服务器2 CentOS 7.4 x86_64 192.168.100.202 ① jdk-8u91-linux-x64.tar.gz 、② apache-tomcat-8.5.16.tar.gz

网络拓扑图

后续上传。。。

开始部署

Tomcat 服务器1、Tomcat 服务器2部署

在安装 Tomcat 之前必须先安装 JDK ,JDK 的全称是 Java Development Kit ,是 Sun 公司免费提供的 Java 语言的软件开发工具包,其中包含 Java 虚拟机( JVM )。编写好的 Java源程序通过编译可形成 Java 字节码,只要安装了 JDK ,就可以利用 JVM 解释这些字节码文件,从而保证了 Java 的跨平台性。

安装 JDK 环境包

  • 关闭防火墙
systemctl enable firewalld
systemctl stop firewalld
setenforce 0
  • 安装 JDK 软件包
tar zxvf jdk-8u91-linux-x64.tar.gz -C /opt
cd /opt
mv jdk1.8.0_91/ /usr/local/java
  • 建立脚本,添加到环境变量中

cd /etc/profile.d vim java.sh 添加下面的行 export JAVA_HOME=/usr/local/java ##设置Java根目录 export PATH=$PATH:$JAVA_HOME/bin ##在PATH环境变量中添加Java根目录下的bin/子目录

source java.sh ##运行脚本

  • 查看 Java 版本是否一致
java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

安装 Tomcat软件包

  • 解压软件包,并移动到 /usr/local/目录下
tar zxvf apache-tomcat-8.5.16.tar.gz -C /opt
cd /opt
mv apache-tomcat-8.5.16/ /usr/local/tomcat8
  • 启动 tomcat /usr/local/tomcat8/bin/startup.sh

  • 查看8080端口,检查服务是否成功开启

netstat -ntap | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      2181/java
  • 添加测试页面

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

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>hello world</title> </head> <body> <% out.println("This is Tomcat1 web");%>
</body> </html>

  • 添加网站到主配置文件,以便识别 vim /usr/local/tomcat8/conf/server.xml

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context docBase="/web/web1" path="" reloadable="false"> </Context> ##添加

重启服务,尝试访问主页

./usr/local/tomcat8/bin/shutdown.sh ./usr/local/tomcat8/bin/startup.sh

  • 需要注意的是 Tomcat 的默认访问是 8080 端口,

部署 Nginx 调度服务器

  • 安装所需环境包
yum install pcre-devel zlib-devel openssl-devel gcc gcc-c++ -y
  • 创建管理用户
useradd  -s /bin/false www
  • 解压 Nginx 软件包,执行编译安装
tar zxvf nginx-1.12.0.tar.gz -C /opt
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
--with-http_flv_module
--with-http_ssl_module

##执行make && make install
  • 添加主配置文件配置
vim /usr/local/nginx/conf/nginx.conf

#keepalive_timeout 0; keepalive_timeout 65;

#gzip  on;

upstream tomcat_server {                             #添加两台Tomcat调度服务器
          server 192.168.100.201:8080 weight=1;
          server 192.168.100.202:8080 weight=1;    
        }

server {
    listen       80;

.....省略 location / { root html; index index.html index.htm; proxy_pass http://tomcat_server; #支持访问Tomcat首页 }

  • 检查 nginx 语法是否存在错误
/usr/local/nginx/sbin/nginx -t
  • 建立软链接,启用 nginx 服务,关闭防火墙及增强×××
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/  
nginx     //启用nginx服务//
systemctl enable firewalld
systemctl stop firewalld
setenforce 0

可以看到,通过不停的刷新我们会访问不同的主页,至此nginx+tomcat部署负载均衡集群成功。