Nginx+Tomcat实现负载均衡动静分离

目录

一、背景与环境

1. 背景

2. 环境图示

3. 目标

二、操作过程

1. 第一层

2. 第二层 


一、背景与环境

1. 背景

在一个Web应用程序中,通常会将动态内容(由Tomcat处理)与静态内容(如图片、CSS、JavaScript文件等)分开处理,以提高性能和扩展性。Nginx可以作为反向代理服务器,将动态请求转发给Tomcat服务器处理,同时直接提供静态内容,实现负载均衡和动静分离。下面将以相关案例进一步介绍。

2. 环境图示

3. 目标

① 7-0 基于反向代理,负载均衡可以调度到 7-1 和 7-2

② 7-1 和7-2 动静分离,自身处理静态资源,动态资源交给 7-3 和 7-4

③ 最终客户端访问代理服务器 7-0 实现负载均衡与动静分离

二、操作过程

1. 第一层

① 关闭所有机器防火墙

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0

② 7-0,7-1,7-2 yum安装nginx

[root@localhost ~]# yum install epel-release.noarch -y
[root@localhost ~]# yum install nginx -y

③ 修改 7-0 代理服务器配置

[root@localhost ~]# vim /etc/nginx/nginx.conf18         upstream web {19         server 192.168.190.101;20         server 192.168.190.102;21         }49         location / {50         proxy_pass http://web;51         }
[root@localhost ~]# nginx -t
[root@localhost ~]# systemctl start nginx.service
[root@localhost ~]# nginx -s reload

④ 分别修改 7-1,7-2 nginx主目录web文件,并开启nginx服务

192.168.190.101:
[root@localhost ~]# vim /usr/share/nginx/html/index.html
7-1
[root@localhost ~]# systemctl start nginx.service192.168.190.102:
[root@localhost ~]# vim /usr/share/nginx/html/index.html
7-2
[root@localhost ~]# systemctl start nginx.service

⑤ 访问代理服务器 7-0 

[root@localhost ~]# curl 192.168.190.100
7-2
[root@localhost ~]# curl 192.168.190.100
7-1
[root@localhost ~]# curl 192.168.190.100
7-1
[root@localhost ~]# curl 192.168.190.100
7-2

2. 第二层 

① 分别修改 7-1,7-2 web服务器配置文件

[root@localhost ~]# vim /etc/nginx/nginx.conf29         upstream tomcat {30         server 192.168.190.103:8080;31         server 192.168.190.104:8080;32         }48         location ~* \.jsp$ {49         proxy_pass http://tomcat;50         }51         52         location ~* \.html$ {53         root         /usr/share/nginx/html;54         }
[root@localhost ~]# nginx -t
[root@localhost ~]# nginx -s reload

 ② 7-3,7-4 分别安装tomcat

[root@localhost ~]# yum install tomcat -y

 ③ 7-3,7-4 分别新建tomcat服务项目文件

192.168.190.103,7-3:
[root@localhost ~]# cd /usr/share/tomcat/webapps
[root@localhost webapps]# mkdir test
[root@localhost webapps]# echo 7-3 > test/index.jsp
[root@localhost webapps]# systemctl start tomcat192.168.190.104,7-4
[root@localhost ~]# cd /usr/share/tomcat/webapps
[root@localhost webapps]# mkdir test
[root@localhost webapps]# echo 7-4 > test/index.jsp
[root@localhost webapps]# systemctl start tomcat

④ 访问代理访问 7-0 查看负载均衡与动静分离 

[root@localhost ~]# curl 192.168.190.100/test/index.jsp
7-4
[root@localhost ~]# curl 192.168.190.100/test/index.jsp
7-3
[root@localhost ~]# curl 192.168.190.100/test/index.jsp
7-3
[root@localhost ~]# curl 192.168.190.100/test/index.jsp
7-4
[root@localhost ~]# curl 192.168.190.100/test/index.j

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/725593.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是5G边缘计算网关?

随着5G技术的飞速发展和普及,边缘计算作为5G时代的关键技术之一,正日益受到业界的关注。而5G边缘计算网关,作为连接5G网络和边缘计算节点的桥梁,扮演着至关重要的角色。HiWoo Box,作为一款卓越的5G边缘计算网关&#x…

springcloud:3.5测试慢调用熔断降级

服务提供者【test-provider8001】 Openfeign远程调用服务提供者搭建 文章地址http://t.csdnimg.cn/06iz8 相关接口 测试远程调用:http://localhost:8001/payment/index 服务消费者【test-consumer-resilience4j8004】 Openfeign远程调用消费者搭建 文章地址http://t…

Unity3D Netty网络框架的使用详解与原理详解

前言 Unity3D是一款强大的跨平台游戏开发引擎,而Netty是一个高性能、异步事件驱动的网络应用框架。结合使用Unity3D和Netty可以实现网络游戏的开发,实现客户端和服务器端之间的通信。本文将详细介绍Unity3D和Netty的使用方法和原理,以及如何…

学习大数据,所必需的java基础(8)

文章目录 字符缓冲流字符缓冲输出流 _Buffered和Writer字符缓冲输入流字符缓冲流练习 转换流字符编码字符集转换流转换流_OutputStreamWriter序列流和反序列流的介绍序列化流_ObjectOutputStream反序列化_ObjectInputStream不想被序列化操作反序列化时出现的问题以及分析和解决…

解决:hive数据库初始失败

1、背景 采用Mysql数据库保存hive元数据时,我们一般是这样操作: 启动mysql服务;用mysql新建一个库(比如库名为"hive“,这个“hive”与hive-site.xml中的local:3306/hive的“hive”对应,是用来保存hiv…

滴滴基于 Clickhouse 构建新一代日志存储系统

ClickHouse 是2016年开源的用于实时数据分析的一款高性能列式分布式数据库,支持向量化计算引擎、多核并行计算、高压缩比等功能,在分析型数据库中单表查询速度是最快的。2020年开始在滴滴内部大规模地推广和应用,服务网约车和日志检索等核心平…

SkyWalking 本地启动以及闪退问题

1. 下载包 Downloads | Apache SkyWalking SkyWalking APM包含OAP和UI Java Agent 就是Java 的探针 2. 运行 UI 默认端口是 8080, OAP 默认端口是 11800(grpc)12800(http) 如果占用可以修改配置文件 UI 项目的配…

MySQL和Redis Common Command

Ubuntu 配置 MySQL 下载对应版本的deb包并解压,用不到test可删除,wegt或者直接去镜像网站下载均可 tar xvf mysql-server_5.7.37-1ubuntu18.04_amd64.deb-bundle.tar -C /mnt/d/opt/mysql-debrm -f mysql-community-test_5.7.37-1ubuntu18.04_amd64.deb…

Verdi VC Apps Batch mode 使用

Verdi VC Apps除了能在Verdi gui中启动之外,其实还可以使用batch mode. 下面我简单介绍一下如何使用: $VERDI_HOME/share/VIA/Apps/Bin/ 目录下有各个Apps对应的perl脚本,我们使用该脚本来启动batch mode. 以listRegisters.pl 为例&#xf…

LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤

一 LVS 负载均衡部署的模式 LVS 有三种负载均衡的模式,分别是VS/NAT(nat 模式)、VS/DR(路由模式)、VS/TUN(隧道模式)。 (一)三种模式原理 及优缺点 1,nat 模式 1.1 原理 原理:首先负载均衡器接收到客户的请求数据包时&am…

【HTML/CSS学习】CSS常见选择器

CSS(层叠样式表)中有许多常见的选择器,它们用于选择要应用样式的HTML元素。以下是一些常见的CSS选择器: 1. 元素选择器(Element Selector) 选择所有指定类型的HTML元素。 p {/* 样式规则 */ }2. 类选择器…

GPT-4技术解析:与Claude3、Gemini、Sora的技术差异与优势对比

【最新增加Claude3、Gemini、Sora、GPTs讲解及AI领域中的集中大模型的最新技术】 2023年随着OpenAI开发者大会的召开,最重磅更新当属GPTs,多模态API,未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚…

b站小土堆pytorch学习记录—— P18-P22 神经网络+小实战

文章目录 一、卷积层 P181.卷积操作2.代码 二、池化层 P191.池化层简单介绍2.代码(1)池化操作中数字的变化(2)池化操作对图片的影响 三、非线性激活 P201.简要介绍2.代码 四、线性层及其他层介绍 P211.线性层2.代码 五、搭建小实战…

Conda快速安装的解决方法(Mamba安装)

如果你的Conda安装了,你可能会发现一个问题,就是使用Conda install 安装某个软件时,会特别慢,这时候呢?你会上网去搜,然后大家解决的方法呢。一是告诉你镜像可以下载快一点,二是,Mam…

基于逻辑回归实现乳腺癌预测(机械学习与大数据)

基于逻辑回归实现乳腺癌预测 将乳腺癌数据集拆分成训练集和测试集,搭建一个逻辑回归模型,对训练集进行训练,然后分别对训练集和测试集进行预测。输出以下结果: 该模型在训练集上的准确率,在测试集上的准确率、召回率和…

hyperf 二十五 数据迁移 一

教程:Hyperf 版本说明 一 生成迁移 php bin/hyperf.php gen:migration create_users_table 执行文件:Hyperf\Database\Commands\Migrations\GenMigrateCommand 功能:创建迁移文件 参数: name 文件名称 选项: c…

Rust 安装与版本更新

Rust 简介 Rust ,一门赋予每个人构建可靠且高效软件能力的语言,主打内存安全。 2024年2月,在一份 19 页的报告《回归基础构件:通往安全软件之路》中,白宫国家网络主任办公室(ONCD)呼吁开发者使…

NoSQL--3.MongoDB配置(Linux版)

目录 2.2 Linux环境下操作 2.2.1 传输MongoDB压缩包到虚拟机: 2.2.2 启动MongoDB服务: 2.2 Linux环境下操作 2.2.1 传输MongoDB压缩包到虚拟机: (笔者使用XShell传输) 如果不想放在如图的路径,删除操作…

[AIGC] Maven的生命周期和Spring Boot的结合使用

在介绍Maven和Spring Boot结合使用之前, 了解Maven生命周期是非常必要的。Maven生命周期是构建过程中应遵循的一组步骤。每个步骤都代表了一个阶段,大致可以分为以下三部分: clean阶段: 清理上一次的构建结果。default阶段(构建阶段&#xf…