Nginx是怎么实现负载均衡的?Nginx负载均衡实现案例
发表于:2024-10-05 作者:千家信息网编辑
千家信息网最后更新 2024年10月05日,一、Nginx 负载均衡实现原理:Nginx 实现负载均衡是通过反向代理来实现的。(1)Nginx 静态处理优势Nginx 处理静态页面的效率远高于 Tomcat 的处理能力;如果 Tomcat 的请
千家信息网最后更新 2024年10月05日Nginx是怎么实现负载均衡的?Nginx负载均衡实现案例
一、Nginx 负载均衡实现原理:
Nginx 实现负载均衡是通过反向代理来实现的。
(1)Nginx 静态处理优势
Nginx 处理静态页面的效率远高于 Tomcat 的处理能力;
如果 Tomcat 的请求量为 1000次,则 Nginx 的请求量为 6000次;
Tomcat 每秒的吞吐量为 0.6 M,Nginx 的每秒吞吐量为 3.6M;
Nginx 处理静态资源的能力是 Tomcat 处理的6倍,优势很大。
(2)Tomcat 主要目录
bin:存放启动和关闭Tomcat脚本
conf:存放Tomcat不同的配置文件
doc:存放Tomcat文档
lib/japser/common:存放Tomcat运行需要的库文件
logs:存放Tomcat执行时的LOG文件
src:存放Tomcat的源代码
webapps:Tomcat的主要Web发布目录
work:存放jsp编译后产生的class文件
(3)Nginx 应用
1、nginx是一款非常优秀的 HTTP 服务器软件:
支持高达 50000个并发连接数的响应;
拥有强大的静态资源处理能力;
运行稳定;
内存、CPU 等系统资源消耗非常低。
2、目前已有很多大型网站都应用 Nginx 服务器作为后端网站程序的反向代理及负载均衡器,提升整个站点的负载并发能力。
(4)动静分离原理
1、服务端接受来自客户端的请求中,既有静态资源也有动态资源。
2、设置 nginx 处理静态图片,后端 Tomcat 处理动态页面
修改 Tomcat 端 jsp 文件,指定图片文件;
修改 nginx 配置文件,添加正则处理图片;
创建目录并添加图片(注意项目名称需要和 Java 项目名称相同)
重启 nginx;
浏览器访问测试查看图片是否添加;
分别在 nginx 服务器和 Tomcat 服务器查看日志文件
二、实验案例:
实验拓扑图
(1)网络图总览:
(2)具体案例实验:
角色 IP地址
Nginx 192.168.220.131
Tomcat01 192.168.220.136
Tomcat02 192.168.220.137
实验环境说明:
准备三台虚拟机,一台作为 nginx 代理服务器,用于接收用户的访问请求,两台 Tomcat 服务器(群集);
nginx 将客户端的请求,转发给后台的多台 Tomcat 服务器处理,Tomcat 将请求回应,在通过代理服务器发给客户端;
实验验证:客户端只需要在浏览器上访问代理服务器的地址,不需要访问后台的具体 Tomcat,就能访问到网页信息。
第一步:搭建 Nginx
搭建nginx,之前博客有详细介绍。
第二步:部署两台 Tomcat
(1)配置 JAVA 环境
1、安装 jdk
rpm -ivh jdk-8u201-linux-x64.rpm
安装后的位置在:/usr/java/
2、配置环境变量
vim /etc/profile,在文件末尾添加以下代码:
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarexport PATH=$JAVA_HOME/bin:$PATH
使环境变量生效:
source /etc/profile
3、使用 java -version 命令检查是否已安装成功
(2)安装和启动 Tomcat
1、解压缩包到指定路径,/usr/local/
tar zxvf apache-tomcat-9.0.16.tar.gz -C /usr/local/
2、解压完成后,生成 apache-tomcat-9.0.16 文件夹,改名为 Tomcat
mv apache-tomcat-9.0.16/ tomcat
3、为了方便控制 tomcat的开启和关闭,我们可以创建一个软连接
ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin/
4、用 startup.sh 脚本开启tomcat
第三步:Tomcat 中创建测试页面
(1)创建目录
mkdir -p /web/webapp1vim /web/webapp1/index.jsp添加以下内容:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> JSP test1 page <% out.println("Welcome to test site, http://www.test1.com");%>
)
(2)指定站点
目录:/usr/local/tomcat/conf
vim server.xml添加以下代码:
(3)回到 bin/ 目录下,再重新启动一下 Tomcat
./shutdown.sh ./startup.sh
(4)浏览器访问一下网页,检查是否成功
(5)第二台 Tomcat 部署和第一台一模一样,但是为了页面显示区别,在 /web/webapp1/index.jsp 文件中,稍作修改,将 test1 改为 test2
注意:
在企业网中,群集中的 Tomcat 网站内容是一模一样的,客户无论访问到哪个Tomcat,提供的网站都是一致的。但是这边,为了展示实验效果,站点内容不一样,是为了区分在客户端能够看出是哪个Tomcat 提供了服务回应。
第四步:修改 Nginx 配置文件,添加服务器池
(1)文件位置:/usr/local/nginx/conf/nginx.conf
1、添加服务池:
upstream tomcat-server { server 192.168.220.136:8080 weight=1; server 192.168.220.137:8080 weight=1; }
2、在 location 段,添加以下代码,意为调用服务池(协议,端口等等)
proxy_pass http://tomcat-server;
(2)重启 nginx 服务
killall -1 nginx
第五步:客户端测试
这个架构中,nginx 只作为代理服务器而存在,我们作为用户访问网页,根本就不知道后面是哪一台具体提供服务的服务器,只需要将请求发送给 nginx 代理服务器,由 nginx 代理服务器,调用后台的Tomcat 给用户提供回应。
在客户机浏览器上访问 nginx 代理服务器:
我们可以看到,从代理服务器,可以直接访问到群集Tomcat提供的服务。
服务
服务器
文件
代理
处理
客户
目录
静态
实验
图片
资源
配置
客户端
浏览器
环境
网站
能力
页面
浏览
均衡
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
需求分析和软件开发的关系
聚商网络技术服务有限公司
徐州质量软件开发维修电话
网络安全大脑视频
网络安全基础知识竞赛题
cfes网络技术
怎么购买国外服务器
安徽软件开发工资标准
温州网络技术服务有哪些
数据库复试难度
软件开发跨行业
武汉移动宽带dns服务器
wifi的网络安全秘钥
郑州电脑软件开发哪家便宜
nacos刷新数据库
邯郸系统软件开发哪家可靠
燃烧的远征哪个服务器不用排队
本地数据库和云数据库服务器地址
欧洲专利局制作的专利文献数据库
宁河区电子网络技术质量保证
wow怀旧60服务器会免费么
成都外包软件开发公司有哪些
国泰安数据库日期选择
绝地求生服务器水平
软件开发电脑学校学费多少
企业数据较全的数据库有哪些
红杏服务器
软件开发成本控制计划
番禺软件开发哪里实惠
计算机网络技术升本是什么