Nginx+Tomcat负载均衡、动静分离群集 搭建方法

前言

Tomcat简介
·最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发安装Tomcat后,安装路径下面的目录和文件,是使用或者配置Tomcat的重要文件

一 . Tomcat重要目录

在这里插入图片描述

二. Nginx应用

2.1 nginx优势

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

Nginx静态处理优势
·Nginx处理静态页面的效率远高于Tomcat的处理能力
·若Tomcat的请求量为1000次,则Nginx的请求量为6000次
Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3.6M
·Nginx处理静态资源的能力是Tomcat处理的6倍

2.2 Nginx负载均衡实现原理

Nginx实现负载均衡是通过反向代理实现

反向代理原理
在这里插入图片描述

Nginx配置反向代理的主要参数
upstream服务池名{} 四层代理
配置后端服务器池,以提供响应数据
proxy_pass http://服务池名 //代理模块,将请求转发服务池
配置将访问请求转发给后端服务器池的服务器处理

nginx 支持 七层代理

2.3 Nginx动静分离实现原理

动静分离原理服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源由Nginx提供服务,动态资源Nginx转发至后端

在这里插入图片描述
Nginx静态处理优势
·Nginx处理静态页面的效率远高于Tomcat的处理能力
·若Tomcat的请求量为1000次,则Nginx的请求量为6000次
Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3.6M
·Nginx处理静态资源的能力是Tomcat处理的6倍

三. 案例配置

测试负载均衡、动静分离效果
环境配置
以Nginx作为负载均衡器,Tomcat作为应用服务器
站点,并实现负载均衡
·关闭Firewalld防火墙
安装Nginx依赖软件包
解压并编译安装Nginx
配置nginx.conf,添加location静态页面处理及添加
upstream配置段与proxy_pass
检测配置文件与启动Nginx

Tomcat部署与测试网站搭建
要求部署两台后端Tomcat服务器
.为了进行测试,搭建两个内容不同的网站
Tomcat部署与网站搭建步骤
·关闭firewall防火墙
·安装JDK,配置JAVA环境
安装配置Tomcat
创建/web/webapp1目录,修改server.xml,将网站文件目录
更改到/web/webapp1/路径下
/web/webapp1/下建立测试页面index.isp,并进行测试

3.1 环境搭建

准备4台设备
一台nginx 服务器 做地址静态解析,以及 反向代理,实现负载均衡控制 (NGINX)
两台tomcat 服务器,用做动态解析 及 节点服务器使用 (PC-3 ,PC-4)
一台客户机访问使用

软件包准备:
在这里插入图片描述

3.2 动静分离案例配置

3.2.1 配置 nginx 服务器

编译安装 nginx

[root@nginx ~]# systemctl stop firewalld
[root@nginx ~]# setenforce 0
setenforce: SELinux is disabled
[root@nginx ~]# yum -y install gcc \
> gcc-c++ \
> make \
> pcre-devel \
> expat-devel \
> perl \
> zlib-devel \
> pcre

[root@nginx nginx-1.12.2]# useradd -M -s /sbin/nologin nginx
[root@nginx nginx-1.12.2]# tar zxvf nginx-1.12.2.tar.gz
[root@nginx nginx-1.12.2]# ./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module     //统计模块
[root@nginx nginx-1.12.2]# make && make install

创建软连接
[root@nginx nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

将服务交给systemctl 管理

[root@nginx nginx-1.12.2]#  vim /etc/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
PIDFile =/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -S HUP $MAINPID
ExecStop=/usr/bin/kill -S QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
~

添加执行权限

[root@nginx nginx-1.12.2]# chmod 754 /etc/systemd/system/nginx.service

启动服务测试

[root@nginx nginx-1.12.2]# systemctl start nginx.service


[root@nginx nginx-1.12.2]# netstat -ntap | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      19171/nginx: master

3.2.2对两台节点服务器 安装JDK,以及TOMCAT

这里以一台为例,两台同样安装方法

[root@pc-3 opt]# tar -zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local

修改环境变量

[root@pc-3 opt]# vim /etc/profile
加入4行
export JAVA_HOME=/usr/local/jdk1.8.0_91
export JRE_HOME=${
    
    JAVA_HOME}/jre
export CLASSPATH=.:${
    
    JAVA_HOME}/lib:${
    
    JRE_HOME}/lib
export PATH=${
    
    JAVA_HOME}/bin:$PATH
[root@pc-3 opt]# source /etc/profile

安装tomcat

[root@pc-3 opt]# tar -zxvf apache-tomcat-8.5.16.tar.gz  -C /usr/local
[root@pc-3 opt]# cd /usr/local
[root@pc-3 local]# mv apache-tomcat-8.5.16/ tomcat
[root@pc-3 local]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin
[root@pc-3 local]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin

3.2.3 配置nginx ,启动动静分离

[root@nginx conf]# vim nginx.conf

添加此配置.......................
以JSP 结尾的 动态请求都指向 192.168.100.38080服务器
 location ~.*.jsp$ {
    
    
          proxy_pass http://192.168.100.3:8080;
          proxy_set_header HOST $host;
  }


检查配置

[root@nginx conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax isok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

配置首页文件

[root@nginx conf]# vim /usr/local/nginx/html/index.html
<h1> this is 静态页面</h1>
<meta http-equiv="content-type" content="text/html;charset=utf-8">

配置tomcat首页文件

Vim /usr/local/tomcat/webapps/test/index.html

<!DOCTYPE html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html>
 <head>
    <title>JSP test1 page</title>
 </head>
 <body>
    <div> 这是动态页面</div>
 </body>
</html>

3.2.4 客户端访问192.168.100.20 以及 192.168.100.20/test/index.jsp测试动静分离

在这里插入图片描述

在这里插入图片描述

3.2.5 nginx 处理静态图片,TOMcat 处理动态页面测试

修改tomcat 首页文件

<!DOCTYPE html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
 <head>
    <title>JSP test1 page</title>
 </head>
 <body>
    <div> 这是动态页面</div>
   <img src="123.jpg"/>
 </body>
</html>
~

修改nginx 配置文件

在这里插入图片描述
将 123.jpg 图片放到此路径站点目录下

[root@nginx ~]# cd /usr/local/nginx/html/
[root@nginx html]# mkdir test
[root@nginx html]# cd test
[root@nginx test]# rz -E
rz waiting to receive.
[root@nginx test]# ls
123.jpg
[root@nginx test]# pwd
/usr/local/nginx/html/test
[root@nginx test]#

3.2.6 测试,访问成功

在这里插入图片描述

3.3 负载均衡案例

3.3.1 配置两台tomcat 的 首页文件

[root@pc-3 examples]# cd /usr/local/tomcat/webapps/
[root@pc-3 webapps]# mkdir new

Vim index.html

在这里插入图片描述

[root@pc-4 examples]# cd /usr/local/tomcat/webapps/
[root@pc-4 webapps]# mkdir new

Vim index.html

在这里插入图片描述

3.3.2 配置tomcat 的首页站点目录设置(两台同样操作)

以其中一台为例

[root@pc-4 conf]# vim server.xml
添加此行

<Context path="" docBase="new"  reloadable="true"/>    //new 为默认读取的站点目录

在这里插入图片描述

[root@pc-4 conf]# vim web.xml

在这里插入图片描述

3.3.3 配置nginx 配置文件

在这里插入图片描述

3.3.4 访问192.168.100.20测试

在这里插入图片描述
刷新一下,自动切换到节点2 上

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/BIGmustang/article/details/108413124