如何通过脚本实现Nginx与Tomcat的负载均衡及动静分离?

2026-05-27 21:211阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计986个文字,预计阅读时间需要4分钟。

如何通过脚本实现Nginx与Tomcat的负载均衡及动静分离?

Nginx负载均衡原理:

1.Nginx负载均衡是通过反向代理实现,反向代理(Reverse Proxy)指以代理服务器来接收客户端请求,然后将请求转发给内部网络的服务器。

2.使用Nginx作为代理服务器接收来自Internet的连接请求,再将请求转发到内部网络。

一、Nginx 负载均衡实现原理

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

反向代理(Reverse Proxy) 是指以 代理服务器(例:Nginx) 来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器(例:Tomcat),并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器(例:Nginx)对外就表现为一个反向代理服务器。

我们从客户端的视野来看,实际上客户端并不知道真实的服务提供者是哪台服务器,它只知道它请求了反向代理服务器。因此反向代理这种方式又对外隐藏了真实服务器的地址,从一定程度上降低了安全隐患。

2、Nginx 配置反向代理的主要参数

1)upstream 服务池名 {}

作用:配置后端服务器池,以提供响应数据

2)proxy_pass 服务池名

作用:配置将访问请求转发给后端服务器池的服务器处理

二、Nginx 动静分离实现原理

1、动静分离原理

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

2、Nginx 静态处理优势

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

三、Nginx + Tomcat 动静分离、负载均衡配置步骤

环境准备

如何通过脚本实现Nginx与Tomcat的负载均衡及动静分离?

注意:脚本不太完美,请勿执行第二次

1、部署 Nginx 负载均衡服务器

安装Nginx服务详情请看:​​web服务之Nginx网站服务​​

下面是Nginx服务一键脚本,使用source或者. 执行脚本即可

#!/bin/bash
#脚本说明:编译安装nginx服务
#注意:使用前请将nginx-1.12.0.tar.gz放入/opt目录下

#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

#安装所需开发包和编译环境、编译器
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

#创建程序用户,便于准确控制访问
useradd -M -s /sbin/nologin nginx

#解压安装包
cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/

#编译安装nginx;指定安装路径、指定用户名、组名、启用模块以支持统计状态
cd /opt/nginx-1.12.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-tomcat_server;

proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

#配置Nginx处理静态图片请求
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
root /usr/local/nginx/html/img/;
expires 10d;
}
location / {
root html;
index index.html index.htm;
}


systemctl restart nginx.service

4、访问测试

测试静态页面效果

  • 浏览器访问 192.168.163.10/
  • 浏览器访问 192.168.163.10/pika.jpg

测试负载均衡效果,不断刷新浏览器测试

  • 浏览器访问 192.168.163.10/test/index.jsp

本文共计986个文字,预计阅读时间需要4分钟。

如何通过脚本实现Nginx与Tomcat的负载均衡及动静分离?

Nginx负载均衡原理:

1.Nginx负载均衡是通过反向代理实现,反向代理(Reverse Proxy)指以代理服务器来接收客户端请求,然后将请求转发给内部网络的服务器。

2.使用Nginx作为代理服务器接收来自Internet的连接请求,再将请求转发到内部网络。

一、Nginx 负载均衡实现原理

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

反向代理(Reverse Proxy) 是指以 代理服务器(例:Nginx) 来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器(例:Tomcat),并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器(例:Nginx)对外就表现为一个反向代理服务器。

我们从客户端的视野来看,实际上客户端并不知道真实的服务提供者是哪台服务器,它只知道它请求了反向代理服务器。因此反向代理这种方式又对外隐藏了真实服务器的地址,从一定程度上降低了安全隐患。

2、Nginx 配置反向代理的主要参数

1)upstream 服务池名 {}

作用:配置后端服务器池,以提供响应数据

2)proxy_pass 服务池名

作用:配置将访问请求转发给后端服务器池的服务器处理

二、Nginx 动静分离实现原理

1、动静分离原理

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

2、Nginx 静态处理优势

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

三、Nginx + Tomcat 动静分离、负载均衡配置步骤

环境准备

如何通过脚本实现Nginx与Tomcat的负载均衡及动静分离?

注意:脚本不太完美,请勿执行第二次

1、部署 Nginx 负载均衡服务器

安装Nginx服务详情请看:​​web服务之Nginx网站服务​​

下面是Nginx服务一键脚本,使用source或者. 执行脚本即可

#!/bin/bash
#脚本说明:编译安装nginx服务
#注意:使用前请将nginx-1.12.0.tar.gz放入/opt目录下

#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

#安装所需开发包和编译环境、编译器
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

#创建程序用户,便于准确控制访问
useradd -M -s /sbin/nologin nginx

#解压安装包
cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/

#编译安装nginx;指定安装路径、指定用户名、组名、启用模块以支持统计状态
cd /opt/nginx-1.12.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-tomcat_server;

proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

#配置Nginx处理静态图片请求
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
root /usr/local/nginx/html/img/;
expires 10d;
}
location / {
root html;
index index.html index.htm;
}


systemctl restart nginx.service

4、访问测试

测试静态页面效果

  • 浏览器访问 192.168.163.10/
  • 浏览器访问 192.168.163.10/pika.jpg

测试负载均衡效果,不断刷新浏览器测试

  • 浏览器访问 192.168.163.10/test/index.jsp