Nginx+Tomcat负载均衡,动静分离

news2024/11/25 16:25:54

文章目录

  • 一.Nginx应用
        • 1.1Nginx负载均衡实现原理
        • 1.2Nginx动静分离实现原理
  • 二.Nginx+Tomcat负载均衡、动静分离(七层实例)

一.Nginx应用

Nginx是一款非常优秀的HTTP服务软件

  • 支持高达50000个并发连接数的响应
  • 拥有强大的静态资源处理能力
  • 运行稳定
  • 内存、CPU等系统资源消耗非常低

目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,提升整个站点的负载并发能力

1.1Nginx负载均衡实现原理

在这里插入图片描述
Nginx配置反向代理的主要参数

  • upstream 服务池名 { }
    • 配置后端服务器池,以提供响应数据
  • proxy_pass http://服务池名
    • 配置将访问请求转发给后端服务器池的服务器处理

1.2Nginx动静分离实现原理

在这里插入图片描述
动静分离原理:
服务端接收来自客户端的请求中,既有静态资源也有动态资源,既有静态资源也有动态资源,静态资源由Nginx提供服务,动态资源Nginx转发至后端

Nginx静态处理优势:

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

二.Nginx+Tomcat负载均衡、动静分离(七层实例)

在这里插入图片描述

Nginx 服务器:192.168.174.75
Tomcat服务器1:192.168.174.76:8080
Tomcat服务器2:192.168.174.74:8080 192.168.174.74:8081

配置Tomcat服务器1:
在这里插入图片描述
在这里插入图片描述

vim index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test3 page</title>
</head>
<body>
<% out.println("JSP动态页面 3");%>
</body>
</html>
~           

在这里插入图片描述

配置Tomcat服务器2:
在这里插入图片描述

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<% out.println("JSP动态页面 1");%>
</body>
</html>

在这里插入图片描述

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test2 page</title>
</head>
<body>
<% out.println("JSP动态页面 2");%>
</body>
</html>

在这里插入图片描述
在这里插入图片描述
配置Nginx 服务器:
在这里插入图片描述

vim nginx.repo

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#定义后端服务器组的名称和节点配置
upstream backend_server {
         server 192.168.174.74:8080 weight=1;
         server 192.168.174.74:8081 weight=1;
         server 192.168.174.76:8080 weight=1;
}


#使用location匹配用户发来的.jsp动态页面请求给后端服务器组
    location ~* .*\.jsp$ {
             proxy_pass http://backend_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;
     }

在这里插入图片描述

测试静态页面效果:
在这里插入图片描述

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

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

相关文章

spring.factories

Spring Boot 如何管理第三方Bean 首先抛出一个问题&#xff1a;如果想要被Spring容器管理的Bean的路径不再Spring Boot 的包扫描路径下&#xff0c;怎么办呢&#xff1f;也就是如何去加载第三方的Bean 呢&#xff1f;换句话说:在 Spring Boot 项目中&#xff0c;如果你想要被 …

使用 PicX 创建免费的图床神器

写博客文章时&#xff0c;图片的上传和存放是一个问题&#xff0c;我们也许会在不同的平台发布同一篇文章&#xff0c;这样一来每个平台都要上传图片。为了解决这些问题&#xff0c;做法是把图片统一上传到一个在线的第三方静态资源库中&#xff0c;我们把这个资源库称为图床。…

【博学谷学习记录】超强总结,用心分享丨人工智能 AI项目 ROUGE评估算法简记

目录 ROUGE核心思想评价标准ROUGE-NROUGE-L ROUGE ROUGE的全称是Recall-Oriented Understudy for Gisting Evaluation, 是一种基于召回率指标的评价算法. 核心思想 由多个专家分别生成人工摘要, 构成标准摘要集. 将模型生成的自动摘要和人工摘要做对比, 通过统计两者之间重叠…

C++ 结构体声明(定义)以及不同写法的差异

定义方式总结 在C中&#xff0c;结构体&#xff08;struct&#xff09;的定义主要有多种形式&#xff0c;&#xff0c;你还可以在定义结构体时直接初始化它的成员&#xff0c;或者在定义后创建结构体的实例。以下是一些例子&#xff1a; 定义并初始化结构体&#xff1a; str…

gitlab基本操作

1.gitlab 基本操作 git branch // 查看分支 git branch dev //新建dev 分支 git checkout dev //切换到dev 分支修改 **** git status // 查看哪些文件被修改 git add . //修改了文件需要提交添加上去&#xff08;注意 . 点号&#xff09; git commit -m “update”…

重温数据结构与算法之A star 算法

文章目录 前言一、原理1.1 网格距离1.2 宽度优先搜索1.3 Dijkstra 算法1.4 最佳优先搜索1.5 A*算法 二、代码实现2.1 伪码2.2 python 实现2.3 可视化 三、优缺点分析3.1 优点3.2 缺点 参考 前言 A*(A-Star)算法是一种静态路网中求解最短路径有效的直接搜索方法&#xff0c;也是…

uniapp(三) 之 表单提交

更换UI库 经过我昨天仔细看了下ThorUI&#xff0c;里面有个会员组件&#xff0c;好像有用的组件都是会员组件一样&#xff0c;作为一个白嫖怪&#xff0c;我决定今天再换一个UI库 引入后&#xff0c;根据组件位置自行调整位置 好了现在使用UNI-UI了 但是我的语法是vue3,官网范…

Hadoop数据仓库的主要特征有哪些?

数据仓库(英语&#xff1a;Data Warehouse&#xff0c;简称数仓、DW),是一个用于存储、分析、报告的数据系统。数据仓库的目的是构建面向分析的集成化数据环境&#xff0c;分析结果为企业提供决策支持(Decision Support)。 数据仓库本身并不“生产”任何数据&#xff0c;其数据…

Nebula分布式集群

2022年9月15日18:47:38文章目录 Nebula1.安装:2.数据模型3.NebulaGraph 架构总览4.基本命令文档4.0 数据类型4.1 spaces图空间CREATE SPACEDROP SPACECLEAR SPACESHOW SPACESDESC SPACE 4.2 Tag4.3 edge4.4 点语句INSERT VERTEXDELETE VERTEXUPDATE VERTEXUPSERT VERTEX 4.5 边…

day11 -- 存储过程+触发器+事物处理

学习内容 什么是存储过程 如何使用存储过程 学习记录 存储过程 经常会有一个完整的操作需要多条语句才能完成。 此外&#xff0c;需要执行的具体语句及其次序也不是固定的&#xff0c;它们可能会根据条件而选择性的执行。 那应该怎么办呢&#xff1f;可以创建存储过程。 存储…

工业镜头分类、相关参数含义

一、工业镜头参数 1、焦距/后焦距 焦距是像方主面到像方焦点的距离。后焦距指光线离开镜头最后一片镜片表面到sensor感光面的距离&#xff0c;如8mm&#xff0c;16mm&#xff0c;25mm等&#xff1b; 焦距的大小决定着视角大小&#xff0c;焦距数值小&#xff0c;视角大&#…

4个月完成职位申请并CSC改派出国|新加坡南洋理工大学访学申请记

由于原访学国家签证被拒&#xff0c;O老师期望能申请手续便捷且容易通过签证的国家&#xff0c;最终我们成功申请到世界名校新加坡南洋理工大学的国家教育研究学院。从获得邀请函、办理CSC改派及派出、顺利签证直至出国等全套手续&#xff0c;仅仅4个月。 O老师背景&#xff1a…

腾讯应用宝 - 微下载

首次接触微下载这个概念&#xff0c;故简单记录一下 产品&#xff1a;微下载配置好了吗&#xff1f; Me&#xff1a; 嗯&#xff1f;什么微下载&#xff1f; 基础认知微下载是什么&#xff1f;微下载在哪里使用&#xff1f;微下载链接获取方式&#xff1f;个性化功能&#xff…

搜索引擎召回策略总结

一、搜索引擎召回策略的方法和注意事项(自己能想到的&待补充) 二、相关资料 同义变换在百度搜索广告中的应用 https://mp.weixin.qq.com/s/ybkbU8p_3jgKuCGdNWeG8w 2020年kdd Facebook搜索向量召回读后感【小红书MXie】 https://zhuanlan.zhihu.com/p/184920498 美团搜…

一键安装 HomebrewCN

一键安装 HomebrewCN Brew介绍Homebrew 能干什么?Homebrew自身如何使用安装Homebrew国内源安装 Homebrew(github源) Brew介绍 macOS 和 Linux 缺失软件包的管理器 Homebrew 能干什么? 使用 Homebrew 安装 Mac&#xff08;或Linux&#xff09;没有预装但你需要的东西。 Ho…

python 第三章 基础语句

系列文章目录 第一章 初识python 第二章 变量 文章目录 3.1 输出格式化输出格式化符号格式化字符串扩展f-格式化字符串转义字符结束符 3.2 输入3.3 数据类型转换转换数据类型的函数 3.4 PyCharm交互式开发3.5 运算符运算符的分类算数运算符赋值运算符复合赋值运算符比较运算符逻…

java设计模式之:工厂模式详解(简单工厂+工厂方法+抽象工厂)

文章目录 简单工厂实现应用场景 工厂方法实现适用场景缺点 抽象工厂实现缺点 在面向对象编程中&#xff0c;创建对象实例最常用的方式就是通过 new 操作符构造一个对象实例&#xff0c;但在某些情况下&#xff0c;new 操作符直接生成对象会存在一些问题。举例来说&#xff0c;对…

软件测试2023年行情怎么样?仔细讲解!

目录 前言&#xff1a; 普通功能测试人员不建议跳槽 还有一个要求就是要对业务的极致理解 那么产业互联网趋势会导致什么呢&#xff1f; 现在跳槽涨薪需要掌握到什么样的技术呢&#xff1f; 给大家一些跳槽建议 前言&#xff1a; 软件测试是为了发现程序中的错误而执行程序的…

Keil5新建工程

STM32新建工程 1、基于寄存器、基于库函数、基于HAL2、基于标准库的工程3、工程架构4、基于库函数点灯实验 1、基于寄存器、基于库函数、基于HAL 1、基于寄存器&#xff1a;与51单片机开发案方式一样&#xff0c;是用程序直接配置寄存器&#xff0c;来达到我们想要的功能&…

基于NE555芯片的简单延时电路和方波信号发生器

简单延时电路 NE555芯片是一种经典的计时器集成电路&#xff0c;常用于电子设计中的定时和延时功能。下面是一个简单的NE555延时电路的详细分析和讲解&#xff1a; NE555芯片是一个多功能的集成电路&#xff0c;主要由比较器、RS触发器、RS锁存器以及输出驱动器等组成。它可以工…