nginx反向代理(负载均衡)

nginx的代理
代理
四层代理
七层代理
正向代理和缓存的配置方式

🐭🐮🐯🐰🐉🐍🐴🐑🐒🐔🐶🐷

反向代理···········》负载均衡

负载均衡:将四层或者七层的请求分配到多台后端的服务器上,从而分担整个业务的负载,既可以提高系统的稳定性,也可以提供高可用(备灾,其中的一台后端服务器如果发生故障,不影响整体业务)

在这里插入图片描述

负载均衡的算法:

  • round robin ------ 轮询 rr :负载均衡的默认算法,请求轮流分配给后端服务器

轮询算法适用于后端服务器处理能力相近的情况,默认的算法,可以不加

  • 加权轮询:weight round robin ------- 轮询的升级版,给每个后端服务器赋予不同的权重,给处理能力更强的服务器设置更高的权重,处理能力低的,设置低权重

高峰时间可以通过这个方法进行浏览的优化,适用于服务器处理能力差异比较大的情况

  • ip_Hash:
    当我们访问后端服务器,根据客户端的ip地址,使用hash算法,计算出ip地址的hash值,然后再把请求发送到相应的后端服务器,如果客户端访问的ip地址相同,通过hash算法,再一次的 请求会被分配到上一次访问的服务器,保证会话的稳定


    负载均衡的会话保持 ·············》ip_Hash

会话保持到期之后,会话中断,重新请求时会重新计算hash值

A ··················》192.168.31.10 ···············》hash值 ········》B

中断

A ···············》192.168.31.10 ·············》nginx1

最小连接数(配合加权轮询一块儿使用):最少连接数的算法可以将请求发送到当前连接比较少的后端服务器 ---------- 这种算法适用于后端服务器处理任务耗时不同的情况,可以有效的避免所有的请求集中在处理能力更强的后端服务器上

  • least_conn (配合加权轮询)
    weight =3

  • URL_HASH:根据请求当中的url地址来计算hash值,如果客户端请求的url地址相同,客户端的请求会被分配到同一个服务器上

www.baidu.com/test1 ············ > hash值 ···········》B

www.baidu.com/test1 ·············> hash值 ···········》C
后台服务器的数量发送变化,会影响结果

负载均衡的特点:

  • 1、根据算法把请求分发到不同的服务器
  • 2、客户端访问的是代理地址,响应也是代理服务器响应
  • 3、客户端并不了解后端服务器的情况
  • 4、可以提高安全性,后端服务器是隐藏的
  • 5、负责均衡是有缓存的,可以直接访问缓存,提高响应速度

负载均衡的架构:
nginx1 -------- 192.168.31.13 ------------ 代理服务器
nginx2 -------- 192.168.31.14 ------------ 后端1
nginx3 -------- 192.168.31.15 ------------ 后端2
客户端:谷歌浏览器

配置流量分发,主要是依靠代理服务器完成的,主要配置在代理服务器完成

  • 七层代理:
    upstream:仅支持http协议,用来处理http的请求和响应
    upstream只能写在http模块当中,不能在server也不在全局
upstream xy104 {
(ip_hash;)
(least_conn 配合加权轮询)
(hash $request_uri consistent;  url_hash的算法 -------它不是会话保持!)
server 192.168.31.14 (weight=3;
server 192.168.31.15 (weight=2;
}

使用七层代理要写在server的location模块当中★★★

proxy_pass http://xy104


  • 四层代理:
    stream:不支持http协议,仅支持tcp和udp,处理数据包的流量分发

四层代理需要学在全局模块当中,不能在http模块当中写入★★★

语法配置:
安装nginx的时候必须要有支持stream的模块★★★

stream {
upstream xy104 {
server 192.168.31.14:80;
server 192.168.31.15:80;}
server {listen 81;proxy_pass xy104;}
}
  • rr

  • weight

  • least_conn

  • ip_hash和url_hash不能在四层算法当中使用


基于域名:

upstream xy104 {server www.xy104.com;
server www.xy105.com;}server_name www.123.ccc;

location /

proxy_pass http://xy104;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

nginx重点:★★★★★★

1、nginx配置文件的内容,以及各个模块的作用
2、nginx的优化 -----隐藏版本号,页面压缩,cpu绑定,高并发配置
3、nginx的location匹配 ------- 优先级
4、nginx的重定向 ------ 标志位
5、nginx的负载均衡,算法

TOMCAT:

web应用程序
php ------ .php
tomcat ------ .jsp ------- java编译的代码

三个功能组合而成:

  • java servlet:tomcat是一个serlet容器,负责管理和执行java-sevlet,服务端的java程序,处理客户端的http的请求和响应

  • java server:服务端的配置

  • pages:动态页面的技术 ------- java代码完成的

tomcat既可以作为 以java代码为基础的动态页面,也可以处理和转发动态请求

tomcat的并发能力很差,适合小项目

tomcat的核心组件:

  • web容器:处理web的请求,影响,动态页面的展示

  • jsp容器:解析index.jsp中的java代码转换为servlet的代码,然后由servlet来编译执行 ··········jsp是一种技术模板,类似于html语言,允许在html文件当中,嵌入java的代码

  • servlet容器:接收web容器的请求,负责加载,初始化,执行和管理

在这里插入图片描述

功能组件:

  • connector:接收外部的请求,以及响应请求
  • container:包含了engine,host,context,webapp四
    个组件组成
  • service:包含了connector和container
  • engine:引擎,用来管理多个虚拟主机,一个service只能有一个engine
  • host:代表一个虚拟主机,也可以理解为站点
  • context:对应的web应用
  • wrapps:最终的封装器,容器的最底层
  • bin:启动和关闭的脚本文件
  • conf:tomcat的配置文件
  • logs:tomcat的日志文件
  • webapps:保存不同项目的应用目录
  • work:工作目录
  • temp:临时文件保存目录

在这里插入图片描述

  • Host name:主机名
  • appBase=“webapps” web应用程序目录
  • unpackWARs=“true” 是否对.war格式结尾进行展开,默认配置
  • autoDeploy=“true” tomcat在运行时会自动部署webapps里面对应的配置
  • xmlValiddation=“false” 是否启动xml的命名空间
  • Context docBase=“/usr/local/tomcat/webapps/test1”
<Host name="www.test1.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/test1" path="" reloadable="true" /></Host>

tomcat 对外端口默认:8080

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

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

相关文章

常见的网络攻击手段

IP 欺骗 IP 是什么? 在网络中&#xff0c;所有的设备都会分配一个地址。这个地址就仿佛小蓝的家地址「多少号多少室」&#xff0c;这个号就是分配给整个子网的&#xff0c;「室」对应的号码即分配给子网中计算机的&#xff0c;这就是网络中的地址。「号」对应的号码为网络号…

使用IP自签名SSL证书

最近需要创建WebSocket服务器并使用SSL证书&#xff0c;由于是内网测试&#xff0c;所以需要使用指定IP的自签SSL证书。 其实笔者前面博文 使用nexus3作为Docker镜像仓库 解决nexus3登录x509: certificate has expired or is not yet valid 中有创建过相应的证书&#xff0c;这…

神经网络权重矩阵初始化:策略与影响

文章目录 一、权重矩阵初始化&#xff1a;神经网络训练的关键起点&#xff08;一&#xff09;初始化的重要性及随机特性&#xff08;二&#xff09;不同初始化方法的探索历程零初始化&#xff1a;简单却致命的选择&#xff08;仅适用于单层网络&#xff09;标准初始化&#xff…

react-dnd 拖拽事件与输入框的文本选中冲突

问题描述 当我们使用拖拽库的时候&#xff0c;往往会遇到拖拽的一个元素他的子孙元素有输入框类型的dom节点&#xff0c;当拖拽的事件绑定在该元素身上时候&#xff0c;发现子孙的输入框不能进行文本选中了&#xff0c;会按住鼠标去选中文本的时候会触发拖拽 实际的效果&…

【构建工具】现代开发的重要角色

你可能有所听闻构建工具&#xff0c;但是不知道是干什么的&#xff0c;或者是开发中用到了&#xff0c;大概会使用&#xff0c;但是想理解一下具体的工作原理等&#xff0c;那么我将分享一下我对其的理解。【 我将分为两篇来讲解】。 当我们谈到构建工具时&#xff0c;可以把它…

【环境搭建】Jeecg-Boot v3.5.0 Docker搭建

前言 最近需要复现JeecgBoot的SQL注入漏洞&#xff0c;必须要搭建JeecgBoot v3.5.0这个版本才行&#xff0c;DockerHub没人push这个版本的&#xff0c;相关博客也比较少&#xff0c;所以自己来搭建&#xff0c;记录一下过程。 前置环境 Ubuntu 20.04Docker version 27.3.1do…

如何通过编译器标志增强移动应用的安全性

作为一名 Android 或 iOS 开发者&#xff0c;您可能已经熟悉一些常见的安全开发最佳实践&#xff0c;比如验证外部输入、合理管理内存以及避免使用弱加密算法。然而&#xff0c;即便是最精心编写的代码&#xff0c;也可能包含一些 bug&#xff0c;其中一些可能会导致可被利用的…

华为eNSP:VRRP

一、VRRP背景概述 在现代网络环境中&#xff0c;主机通常通过默认网关进行网络通信。当默认网关出现故障时&#xff0c;网络通信会中断&#xff0c;影响业务连续性和稳定性。为了提高网络的可靠性和冗余性&#xff0c;采用虚拟路由冗余协议&#xff08;VRRP&#xff09;是一种…

前端请求后端接口报错(blockedmixed-content),以及解决办法

报错原因&#xff1a;被浏览器拦截了&#xff0c;因为接口地址不是https的。 什么是混合内容&#xff08;Mixed Content&#xff09; 混合内容是指在同一页面中同时包含安全&#xff08;HTTPS&#xff09;和非安全&#xff08;HTTP&#xff09;资源的情况。当浏览器试图加载非…

【随心记】---- vue表格n-form中自定义增加必填星号

【如上图所示】&#xff1a;自定义增加星号样式 【思路】&#xff1a; 通过插槽实现 【代码】&#xff1a;通过vue的插槽实现自定义样式 <n-form-item-gi label"提示函正文" path"fileList" :span"12"><template #label><div>…

元宇宙时代的社交平台:Facebook的愿景与实践

随着科技的不断进步&#xff0c;元宇宙&#xff08;Metaverse&#xff09;这一概念逐渐走进了人们的视野。作为全球最大的社交平台之一&#xff0c;Facebook&#xff08;现Meta&#xff09;在这场元宇宙革命中扮演着重要角色。Meta不仅在不断扩展其社交平台的边界&#xff0c;还…

HtmlRAG开源,RAG系统联网搜索能力起飞~

网络是RAG系统中使用的主要外部知识来源&#xff0c;许多商业系统&#xff0c;如ChatGPT和Perplexity&#xff0c;都使用网络搜索引擎作为他们的主要检索系统。传统的RAG系统将网页的HTML内容转换为纯文本后输入LLM&#xff0c;这会导致结构和语义信息的丢失。 HTML转换为纯文…

人工智能大语言模型起源篇(一),从哪里开始

序言&#xff1a;许多人最初接触人工智能都是在ChatGPT火热之际&#xff0c;并且大多停留在应用层面。对于希望了解其技术根源的人来说&#xff0c;往往难以找到方向。因此&#xff0c;我们编写了《人工智能大语言模型起源篇》&#xff0c;旨在帮助读者找到正确的学习路径&…

摆脱B端UI框架的桎梏,首先从布局开始

在 B 端开发中&#xff0c;UI 框架虽带来便利&#xff0c;但也可能形成桎梏。要摆脱这种束缚&#xff0c;首先从布局着手是个明智之举。传统的 B 端 UI 框架布局可能较为固定&#xff0c;缺乏灵活性。我们可以尝试创新的布局方式&#xff0c;如响应式设计&#xff0c;适应不同屏…

上海亚商投顾:创业板指震荡调整 机器人概念股再度爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日冲高回落&#xff0c;深成指、创业板指盘中跌超1%&#xff0c;尾盘跌幅有所收窄。机器人概念股逆势爆…

yarn 安装问题

Couldn’t find package “regenerator-runtime” on the “npm” registry. Error: Couldn’t find package “watch-size” on the “npm” regist 标题Error: Couldn’t find package “babel-helper-vue-jsx-merge-props” on the “npm” registry. Error: Couldn’t f…

【AI知识】过拟合、欠拟合和正则化

一句话总结&#xff1a; 过拟合和欠拟合是机器学习中的两个相对的概念&#xff0c;正则化是用于解决过拟合的方法。 1. 欠拟合&#xff1a; 指模型在训练数据上表现不佳&#xff0c;不能充分捕捉数据的潜在规律&#xff0c;导致在训练集和测试集上的误差都很高。欠拟合意味着模…

flink终止提交给yarn的任务

接上文&#xff1a;一文说清flink从编码到部署上线 1.查看正在执行的flink 访问地址&#xff08;参考&#xff09;&#xff1a;http://10.86.97.191:8099/cluster/apps 2.终止任务 yarn application -kill appID 本文为&#xff1a; yarn application -kill application_17…

虚拟机如何使用物理机的公私钥

一、生成公私钥&#xff08;如果没有的话&#xff09; 使用如下指令生成 生成RSA公私钥 ssh-keygen 生成EdDSA公私钥 ssh-keygen -t ed25519 Windows目录 linux会直接生成在当前目录下。 二、导出 一般都是从windows系统导入到linux系统。 可以直接将公私钥文件复制到虚拟机…

太速科技-FMC154-基于FMC 八路SFP+万兆光纤子卡

FMC154-基于FMC 八路SFP万兆光纤子卡 一、板卡概述 本卡是一个FPGA夹层卡&#xff08;FMC&#xff09;模块&#xff0c;可提供高达8个SFP / SFP 模块接口&#xff0c;直接插入千兆位级收发器&#xff08;MGT&#xff09;的赛灵思FPGA。支持业界标准的小型可插拔&#xff0…