Nginx之负载均衡、静态代理与动态代理配置

Nginx之负载均衡配置

文章目录

  • Nginx之负载均衡配置
  • 1. 负载均衡基本配置
    • 1. 配置upstream
    • 2. 配置location
    • 3. 访问
  • 2. Nginx常用负载均衡策略
    • 1. 轮询(默认)
    • 2. 权重
    • 3. ip_hash策略
    • 4. 最少连接策略
    • 5. 负载均衡其他几个配置
  • 3. 静态代理
    • 1. 基于静态在一文件后缀的匹配
    • 2. 基于静态资源文件目录的匹配
  • 4. 动静分离
    • 1. 动态资源
    • 2. 静态资源
    • 3. 动静分离示例

1. 负载均衡基本配置

1. 配置upstream

upstream www.jinshengyuan.com {
	server 192.168.31.100:8080;
	server 192.168.31.101:8081;
}

2. 配置location

location可以配多个

location /demo {
	proxy_pass http://www.jinshengyuan.com;
}
<!--
demo:表示部署到服务器中的contenxPath,如tomcat的webapp目录的demo目录;
www.jinshengyuan.com一定要与upstream后面的保持一致
-->

3. 访问

打开浏览器,输入http://www.jinshengyuan.com进行访问

2. Nginx常用负载均衡策略

1. 轮询(默认)

每个请求轮流分配到不同的服务器,如果某一台服务器宕掉,将自动剔除已经宕掉的服务器而转发到运行正常的服务器。

2. 权重

每个请求按一定的比例分发到不同的服务器,weight值越大访问的几率越大,用于后端服务器性能不均的情况

upstream www.jinshengyuan.com {
	server 192.168.31.100:8080 weight=1;
	server 192.168.31.101:8081 weight=3;
}

3. ip_hash策略

ip_hash也叫IP绑定,每个请求按访问的IP的hash值分配,这样每个访问客户端会固定访问一个后端服务器,可以解决会话Session共享的问题;

如hash(“192.168.31.110”) %2 = 0 或1,这种规则

这种策略在IP不变的情况下会一直访问其中的某一台服务器,而非在各个服务器中来回切换

配置如下:

upstream www.jinshengyuan.com {
	server 192.168.31.100:8080;
	server 192.168.31.101:8081;
	ip_hash; # IP绑定
}

4. 最少连接策略

web请求会被转发大连接数最少的服务器上;

配置如下:

upstream www.jinshengyuan.com {
	server 192.168.31.100:8080;
	server 192.168.31.101:8081;
	least_conn; # 最少连接策略
}

5. 负载均衡其他几个配置

  1. backup

    其他所有的非backup机器down的时候,才请求backup机器

如下

upstream www.jinshengyuan.com {
	server 192.168.31.100:8080;
	server 192.168.31.101:8081 backup; # 备用服务器,其他服务器宕机了才会请求此服务器
}
  1. down

    down表示当前的sever是down的状态,不参与负载均衡

如下:

upstream www.jinshengyuan.com {
	server 192.168.31.100:8080;
	server 192.168.31.101:8081 down; # 此服务不参与负载均衡
}

3. 静态代理

把所有静态资源的访问改为nginx,而不是访问tomcat,因为你滚下更擅长与静态资源的处理,性能更好,效率更高。

所以在实际应用中,我们将静态资源比如图片,css,html,js等交给nginx处理,而不是由tomcat处理。

1. 基于静态在一文件后缀的匹配

通过在nginx.conf配置文件中添加静态资源的location,比如:

当访问静态资源,则从D:/demo/static目录下获取(举例)

location ~.*\.(js|css|html|gif|jpg|png|swf|ioc|zip|txt|doc|docx|xls|pdf|xlsx|mp3|ppt|flv)$ {
	root D:/demo/static;
}

~ 表示正则匹配,也就是后面的内容可以是正则表达式匹配;

第一个 . 表示任意字符;

***** 表示一个或多个字符;

\. 是转义字符,是后面这个点的转移字符;

| 表示或者

$ 表示结尾

2. 基于静态资源文件目录的匹配

将镜头在一放入D:/demo/static目录下,然后当用户访问时由nginx返回这些静态资源

location ~.*/(css|js|images){
	root D:/demo/static;
}

4. 动静分离

nginx的负载均衡和静态代理结合在一起,可以实现动静分离,这是实际应用中常见的一种场景。

动静分离各司其职,专注于自己擅长的事情,充分利用了它们各自的优势,从而达到更高效合理的架构。

1. 动态资源

如jsp由tomcat或其他web服务器完成

2. 静态资源

如图片,css,js等由nginx服务器完成

3. 动静分离示例

在这里插入图片描述

Nginx在一台服务器上安装一份,可以拷贝为多个nginx.conf文件启动多个Nginx,每个Nginx配置文件不一样即可。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python - 深夜数据结构与算法之 高级字符串

目录 一.引言 二.经典算法实战 1.Longest-Common-Sub-Seq [1143] 2.Edit-Distance [72] 3.Longest-Palindromic-Str [5] 4.Distinct-Sub-Seq [115] 5.Regular-Exp-Match [10] 三.总结 一.引言 上一节介绍了字符串的基本操作&#xff0c;本文介绍字符串更复杂的一些操作…

YOLOv8改进 | 主干篇 | 低照度图像增强网络SCINet改进黑暗目标检测(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是低照度图像增强网络SCINet,SCINet(自校正照明网络)是一种专为低光照图像增强设计的框架。它通过级联照明学习过程和权重共享机制来处理图像,优化了照明部分以提升图像质量。我将该网络集成在YOLOv8的主干上针对于图像的输入进行增…

BurpSuite Pro 2023.12.1.2下载与破解-最新版BurpSuite Pro

本文在我的博客地址是&#xff1a;https://h4cker.zip/post/f05ae2e66da503f6383dffe48cdf5bac 上一次BurpSuite的分享还是在2020年 由于CSDN有防盗链&#xff0c;我自己的博客都无法访问这篇博文的图片了 至于为什么再写一次&#xff0c;是因为我看到群里这张图&#xff1a;…

高效能方法 - 任务清单优先级

任务清单是有优先级的&#xff0c;首先要尽所能保证A级别的事项完成&#xff0c;或许不能估计B级或者C级&#xff0c;那这结果也是不错的。 博恩崔西在《吃掉那只青蛙》一书中指出&#xff1a;在你决定要做什么&#xff0c;并对其进行排序的时候&#xff0c;你首要解决那些最难…

腾讯云服务器价格查询,2024更新

腾讯云服务器租用优惠价格表&#xff1a;轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c;2核4G5M带宽756元三年、轻量4核8G12M服务器646元15个月&#xff1b;云服务器CVM S5实例2核2G配置280.8元一年、2核4G…

x-cmd pkg | yq - 命令行 YAML处理工具

目录 简介首次用户支持格式转换友好的显示和操作语法与 jq 类似竞品和相关作品进一步阅读 简介 yq (YAML Query) 是一个轻量级的 YAML、JSON、XML 处理器&#xff0c;主要用于查询和提取 YAML 数据。 本 yq 的包来自 mikefarah/yq 项目&#xff0c;语法类似于 jq 。相比 kisly…

《WebKit 技术内幕》之八(2):硬件加速机制

2 Chromium的硬件加速机制 2.1 GraphicsLayer的支持 GraphicsLayer对象是对一个渲染后端存储中某一层的抽象&#xff0c;同众多其他WebKit所定义的抽象类一样&#xff0c;在WebKit移植中&#xff0c;它还需要具体的实现类来支持该类所要提供的功能。为了完成这一功能&#x…

python if条件判断的基础及应用

当前版本&#xff1a; Python 3.8.4 简介 if 语句是一种用于根据一个或多个条件的结果来执行不同代码块的控制流结构&#xff0c;它会检查给定的条件是否为真。如果条件为真&#xff0c;则执行与之关联的代码块&#xff1b;如果条件为假&#xff0c;则执行与之关联的其他代码块…

工作小计- RGB相关算子实现

项目中的模型一直都是直接操作NV12的yuv格式数据&#xff0c;这次的模型只支持RGB格式的输入&#xff0c;正好来自己实现对应的算子。 这里记录一下对应算子的实现过程&#xff0c;主要涉及到NV12到RGB的变换&#xff0c;RGB的crop/resize操作&#xff0c;对于数据的Norm/ToFlo…

python 正则表达式学习(1)

正则表达式是一个特殊的字符序列&#xff0c;它能帮助你方便的检查一个字符串是否与某种模式匹配。 1. 特殊符号 1.1 符号含义 模式描述^匹配字符串的开头$匹配字符串的末尾.匹配任意字符&#xff0c;除了换行符&#xff0c;当re.DOTALL标记被指定时&#xff0c;则可以匹配包…

芯片工程系列(1)封装基础知识、分来、步骤与方法.md

英文缩写 环氧树脂模塑料&#xff08;Epoxy Molding Compound&#xff0c;EMC&#xff09;引线框架封装&#xff08;Leadframe&#xff09;&#xff0c;基板封装&#xff08;Substrate&#xff09;&#xff0c;Substrate 基板晶圆片级芯片规模封装&#xff08;Wafer Level Chi…

ESP32-UDP通信 (Arduino)

ESP32配置UDP通信 介绍 用户数据报协议UDP UDP&#xff08;User Datagram Protocol&#xff09;是一种在计算机网络中常用的传输层协议&#xff0c;它与TCP&#xff08;Transmission Control Protocol&#xff09;一样属于传输层协议的一种。UDP主要用于在网络中传输数据&…

小程序学习-20

建议每次构建npm之前都先删除miniprogram_npm

第15届蓝桥杯嵌入式省赛准备第三天总结笔记(使用STM32cubeMX创建hal库工程+串口接收发送)

因为我是自己搞得板子&#xff0c;原本的下程序和串口1有问题&#xff0c;所以我用的是串口2&#xff0c;用的PA2和PA3 一&#xff0c;使用CubeMX配置串口 选择A开头的这个是异步通信。 配置串口参数&#xff0c;往届的题基本用的9600波特率&#xff0c;所以我这里设置为9600…

【Linux】解决能访问github但克隆不了的问题

文章目录 1.查看你的代理的地址&#xff1a;2.git设置3.尝试clone 1.查看你的代理的地址&#xff1a; 2.git设置 先看看当前的git设置 $ git config --list然后git中要设置好对应的地址 git config --global http.proxy 127.0.0.1:78903.尝试clone $ git clone https://git…

异或运算的骚操作,由浅入深拿捏一类型的题

文章目录 &#x1f680;前言&#x1f680;异或运算的基本用法&#x1f680;一组数中一种数出现了奇数次&#xff0c;其他种数出现了偶数次&#xff0c;找出这个数&#x1f680;一组数中有两种数出现了奇数次&#xff0c;其他种数出现了偶数次&#xff0c;求这两个数✈️得到一个…

4D毫米波雷达——FFT-RadNet 目标检测与可行驶区域分割 CVPR2022

前言 本文介绍使用4D毫米波雷达&#xff0c;实现目标检测与可行驶区域分割&#xff0c;它是来自CVPR2022的。 会讲解论文整体思路、输入数据分析、模型框架、设计理念、损失函数等&#xff0c;还有结合代码进行分析。 论文地址&#xff1a;Raw High-Definition Radar for Mu…

[pytorch] 2. tensorboard

tensorboard简介 TensorBoard 是一组用于数据可视化的工具。它包含在流行的开源机器学习库 Tensorflow 中.但是也可以独立安装&#xff0c;服务Pytorch等其他的框架 可以常常用来观察训练过程中每一阶段如何输出的 安装pip install tensorboard启动tensorboard --logdir<d…

自定义注解与拦截器实现不规范sql拦截(自定义注解填充插件篇)

在自定义注解与拦截器实现不规范sql拦截&#xff08;拦截器实现篇&#xff09;中提到过&#xff0c;写了一个idea插件来辅助对Mapper接口中的方法添加自定义注解&#xff0c;这边记录一下插件的实现。 需求简介 在上一篇中&#xff0c;定义了一个自定义注解对需要经过where判…

理解PCIE设备透传

PCIE设备透传解决的是使虚拟机直接访问PCIE设备的技术&#xff0c;通常情况下&#xff0c;为了使虚拟机能够访问Hypervisor上的资源&#xff0c;QEMU&#xff0c;KVMTOOL等虚拟机工具提供了"trap and emulate"&#xff0c; Virtio半虚拟化等机制实现。但是这些实现都…