案例分析;通常情况下,一个Tomcat站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题,不能单独应用于生产环境中,所以我们需要一套更可靠的解决方案来完善web站点的架构。

Nginx是一款非常优秀的http服务器软件,它能够支持高达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存,CPU等系统资源消耗非常低。目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,来提升整个站点的负载并发能力。

本案例讲解以Nginx作为负载均衡器,Tomcat作为应用服务器的负载集群的设置方法。网站拓扑架构如图;

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第1张图片

案例环境;

1)Nginx服务器  IP地址192.168.30.55  安装软件 nginx-1。12.0.tar.gz

2)Tomcat服务器1    IP地址192.168.30.15 安装软件 jdk-8u91-linux-x64.tar.gz    apache-tomcat-8.5.16.tar.gz

3) Tomcat服务器2     IP地址192.168.30.99 安装软件 jdk-8u91-linux-x64.tar.gz    apache-tomcat-8.5.16.tar.gz

免费获取源码包链接;

https://pan.baidu.com/s/1SWGJ0jS3PJlWYHvBhrvjZg

https://pan.baidu.com/s/18wIP0vQFSESFc80yMb4n7A

https://pan.baidu.com/s/1VCKDfOWZ1vGIywahc_OSPQ

案例实施;

Tomcat两台服务器配置,

(1)关闭防火墙,安装JDK,配置java环境,

(2)安装配置Tomcat,编辑不同的测试页面

(3)启动Tomcat,浏览器访问测试网页

在安装tomcat服务之前必须先安装JDK,配置java环境。tomcat默认运行在端口8080。事先准备好JDK和tomcat这两个安装包。

10

 

12

 

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第2张图片




 

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第3张图片

使用source 命令将java.sh脚本导入系统环境变量,使其生效。

 

14

 

java环境安装好之后开始安装tomcat软件包。




Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第4张图片

 

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第5张图片

在浏览器中访问tomcat服务器的网站,可以看到tomcat官方网站的首页内容。tomcat默认运行在端口8080,说明tomcat已经配置启动成功。

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第6张图片 

 Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第7张图片

tomcat服务的默认首页站点目录为webapps/ROOT/  ,默认首页文档为index.jsp,分别编辑一个首页测试文档。

 

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第8张图片

 

tomcat服务器1 编写的测试网页内容

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第9张图片

在浏览器中访问tomcat服务器2的网站,可以看到编辑的测试网页内容。

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第10张图片

tomcat服务器2 编写的测试网页内容

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第11张图片

 

在浏览器中访问tomcat服务器2的网站,可以看到编辑的测试网页内容。

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第12张图片

反向代理服务器nginx的安装配置

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第13张图片

(1)编译安装nginx

将事先准备的安装包nginx-1。12.0.tar.gz进行解压

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第14张图片

 







安装nginx的依赖包,准备编译安装环境,nginx的运行需要pcer zlib等软件包的支持,因此应在配置编译安装前预先安装这些软件的开发包,以便提供相应的库和头文件,确保nginx的安装顺利。




Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第15张图片

创建运行用户,组。配置启用http_stub_status_module模块以支持状态统计。编译安装

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第16张图片

 43

 

为了使Nginx服务运行更加方便,可以为主程序nginx创建链接文件,方便管理。使用nginx命令就可以启动服务,


Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第17张图片

在浏览区中输入nginx网址访问,可以看到nginx的官方首页,表明nginx已经开启运行。

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第18张图片

对nginx的主配置文件进行设定,nginx的主配置文件为/usr/local/nginx/conf/nginx.conf   在配置文件中加入反向代理设定参数

upstream 服务器池名 {}         配置后端服务器池,以提供响应数据,参数weight表示权值,权值越高被分配到的概率越大,为了使测试效果比较明显,我们把权值设为一样。

  upstream tomcat_server {


 

        server 192.168.30.15:8080 weight=1;


 

        server 192.168.30.99:8080 weight=1;


 

}

proxy_pass http://tomcat_server;           配置将访问请求转发给后端服务器池tomcat_server的服务器代理。

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第19张图片

 

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第20张图片

把nginx的默认站点通过proxy_pass方法代理到设定好的tomcat_server负载均衡服务器组上。

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第21张图片

49

测试负载均衡效果,打开浏览器访问http://192.168.30.55,不断刷新浏览器测试,可以看到由于权重相同,页面会反复在以下两个页面进行切换。说明负载均衡搭建成功,nginx反向代理成功后端tomcat服务器组。

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第22张图片

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第23张图片

将其中一台tomcat服务关闭,再刷新多次浏览器,此时只会显示另外一台tomcat服务的网页,

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第24张图片

Nginx+Tomcat负载均衡集群,Nginx反向代理(内附源码包)_第25张图片