nginx动静分离和反向代理

一、动静分离

动静分离指的是将动态内容和静态内容分开处理。动态内容通常由后端应用程序生成,例如PHP、Python或Node.js,静态内容则包括图片、CSS、JavaScript等文件。
请添加图片描述

例子:

#代理服务器一
server{
        listen 80;
        server_name  www.dj.com;
        root    /data/nginx/dj;
     location  / {
        root  /data/nginx/dj;
}
     #处理动态文件请求
     location ~* \.(api|php)$ {
        proxy_pass http://192.168.10.10;
        }
     #处理静态文件请求
     location ~* \.(jpg|jpeg|png|gif|bmp)$ {
        proxy_pass http://192.168.10.20;
        }
}
#随后配置两台后台服务器的处理请求的配置即可以实现动静分离

二、反向代理

反向代理:reverse proxy,指的是代理外网用户的请求到内部的指定的服务器,并将数据返回给用户的一种方式,这是用的比较多的一种方式。

1.单台反向代理

请添加图片描述

例子:

# 代理服务器
server {
......
proxy_pass http://192.168.10.101;
}
#真实服务器通过http或nginx提供需要的文件

2.反向代理负载均衡

在上一个节中Nginx可以将客户端的请求转发至单台后端服务器但是无法转发至特定的一组的服务器,而且不能对后端服务器提供相应的服务器状态监测,Nginx 可以基于ngx_http_upstream_module模块提供服务器分组转发、权重分配、状态监测、调度算法等高级功能

#自定义一组服务器,配置在http块内
#一定要写在server模块上面
upstream  web { 
 server 192.168.91.20    
 server 192.168.91.101
}

location  / {
pass_proxy  http://web/
}

#然后配置两台真实服务器来提供服务

访问代理服务器可以看代理服务器把消息轮流转发给后台服务器
请添加图片描述

相关语法

#server支持的parameters如下:
weight=number #设置权重,默认为1,实现类似于LVS中的WRR,WLC等
max_conns=number  #给当前后端server设置最大活动链接数,默认为0表示没有限制
max_fails=number  #后端服务器的下线条件,当客户端访问时,对本次调度选中的后端服务器连续进行检测多少次,如果都失败就标记为不可用,默认为1次,当客户端访问时,才会利用TCP触发对探测后端服务器健康性检查,而非周期性的探测
fail_timeout=time #后端服务器的上线条件,对已经检测到处于不可用的后端服务器,每隔此时间间隔再次进行检测是否恢复可用,如果发现可用,则将后端服务器参与调度,默认为10秒
backup  #设置为备份服务器,当所有后端服务器不可用时,才会启用此备用服务器 sorry server   自己不能转自己
down    #标记为down状态
resolve #当server定义的是主机名的时候,当A记录发生变化会自动应用新IP而不用重启Nginx

例:
请添加图片描述

nginx相关算法

请添加图片描述

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

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

相关文章

Qt如何让按钮的菜单出现在按钮的右侧

直接上代码,我们用到了一个eventfilter的函数功能。这个函数比较厉害和重要,大家务必经常拿出来看看。 void MainWindow::initMenu() { QMenu* menuLiXiang new QMenu; QAction* actXiangMuZhangCheng new QAction("项目章程"); …

BERT+PET方式模型训练

基于BERTPET方式文本分类模型搭建 模型搭建 本项目中完成BERTPET模型搭建、训练及应用的步骤如下(注意:因为本项目中使用的是BERT预训练模型,所以直接加载即可,无需重复搭建模型架构): 一、实现模型工具类函数二、实现…

QT获取最小化,最大化,关闭窗口事件

QT获取最小化,最大化,关闭窗口事件 主程序头文件: 实现: changeEvent,状态改变事件 closeEvent触发点击窗口关闭按钮事件 其代码它参考: /*重写该函数*/ void MainWindow::changeEvent(QEvent *event) {…

python 字符串(str)、列表(list)、元组(tuple)、字典(dict)

学习目标: 1:能够知道如何定义一个字符串; [重点] 使用双引号引起来: 变量名 "xxxx" 2:能够知道切片的语法格式; [重点] [起始: 结束] 3:掌握如何定义一个列表; [重点] 使用[ ]引起来: 变量名 [xx,xx,...] 4:能够说出4个列表相关的方法; [了解] ap…

kafka学习笔记 @by_TWJ

目录 1. 消息重复消费怎么解决1.1. 确保相同的消息不会被重复发送(消费幂等性)1.2. 消息去重1.3. 消息重试机制1.4. kafka怎么保证消息的顺序性1.4.1. 利用分区的特征:1.4.2. 解决办法:1.4.3. 分区分配策略1.4.3.1. RangeAssignor (每组(Topi…

水电表自动抄表系统

1.简述 水电表自动抄表系统是一种现代化智能化管理系统,它利用先进的物联网,完成了远程控制、即时、零接触的水电表读值收集,大大提升了公共事业服务项目的效率和准确性。该系统不仅减少了人工抄表工作量,还避免了人为失误&#…

Mac环境下,简单反编译APK

一、下载jadx包 https://github.com/skylot/jadx/releases/tag/v1.4.7 下载里面的这个:下载后,找个干净的目录解压,我是放在Downloads下面 二、安装及启动 下载和解压 jadx: 下载 jadx-1.4.7.zip 压缩包。将其解压到你希望的目…

Flink的简单学习四

一 有状态计算 1.1 概念 1.状态;上一次计算的结果 2.需要基于上一个结果来进行计算,被称为有状态计算 1.2 未使用有状态计算 1.下面这个代码将相同的key发送到同一个task任务里面计算。就是因为这个导致了,明明之前没有输入b,但是输入b之…

【鸿蒙】开发之页面跳转组件—实现页面跳转方法汇总!

①不同 Slice 间跳转,同一个 Ability 中,优点是方便,高效,缺点是业务逻辑复杂度受限。 button.setClickedListener(listener -> present(new SecondAbilitySlice(), new Intent()) );②使用 Intent 借助于 ElementName&#x…

【管理咨询宝藏126】德勤咨询为某大型机械集人才体系发展思路方案

本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏126】德勤咨询为某大型机械集人才体系发展思路方案 【格式】PDF版本 【关键词】人力咨询、人才体系、人才盘点 【核心观点】 - 中国整车与零部件…

七天进阶elasticsearch[two]

批量保存 批量保存是通过_bulk API来实现的 请求方式 post 请求地址 _bulk 通过_bulk操作文档,一般至少有两行参数 第一行用于确定要干什么(插入,修改还是删除) 第二行才是操作的数据; 当然以上是标准操作,也可以不遵循标准操作,使用不同的请求方式来完成 批量保存demo…

故障预警 vs 故障分类:哪个更有意义,哪个更具挑战性?

故障预警 vs 故障分类:哪个更有意义,哪个更具挑战性? 在现代工业系统中,风力发电机、制造设备等关键装置的可靠性和稳定性对生产效率至关重要。为此,故障预警和故障分类成为保障设备正常运行的重要手段。那么&#xf…

备份和恢复realme智能手机:综合指南

realme自2018年成立至今,一直秉持着“敢于超越”的品牌精神,专注于为全球年轻用户提供性能卓越、设计新颖的高品质手机。对于如何备份和恢复realme手机,本文将介绍多种不同的方法。 第1部分:使用Coolmuster Android Backup Mana…

怎解ESP-ADF组件 error: unknown type name ‘xSemaphoreHandle‘

没有定义,看一下最上面的头文件。 通过看最上面的头文件引入,可以看到信号量头文件已经有了,那很明显就是类型的兼容的问题,打开MenuConfig开启向后兼容API的选项。 问题解决。

CVE-2024-2961:将phpfilter任意文件读取提升为远程代码执行(RCE)

0x00 前言 前几天p牛师傅在星球发了一个帖子:PHP利用glibc iconv()中的一个缓冲区溢出漏洞CVE-2024-2961,实现将文件读取提升为任意命令执行漏洞,当时觉得这个漏洞蛮有意思,就想研究一下。于是web狗开启了一次二进制漏洞的学习之…

输出有10个元素的整型数组各元素的值

(1)下标法 编写程序: (2)指针法: 将上面程序第7行和第10行的a[i]改为"*(ai)"。 (3)用指针变量指向数组元素 编写程序: 运行结果: 对3种方法的比…

家政上门按摩小程序源码 仿东郊到家小程序源码

家政上门按摩小程序源码 仿东郊到家小程序源码 实用行业 适用于:预约私教,预约瑜伽/健身、预约美容/美发/美甲、预约理疗/足疗/推拿、预约清洁/保洁/保安、预约洗车/维修/安装、预约保姆/月嫂/护工/洗衣/烧饭、钟点工等暖心服务。在家政市场上&#xf…

数据结构复习

基本概念和术语: 数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。 数据元素:是组成数据的,具有一定意义的基本单位,在计算机…

ChatGPT Prompt技术全攻略-入门篇:AI提示工程基础

系列篇章💥 No.文章1ChatGPT Prompt技术全攻略-入门篇:AI提示工程基础2ChatGPT Prompt技术全攻略-进阶篇:深入Prompt工程技术3ChatGPT Prompt技术全攻略-高级篇:掌握高级Prompt工程技术4ChatGPT Prompt技术全攻略-应用篇&#xf…

nvm详细安装使用教程(nvm-node多版本管理工具),详细命令

nvm是什么 NVM 是 Node Version Manager 的缩写,它是一个用于管理 Node.js 版本的命令行工具。通过NVM,你可以在同一台机器上安装和切换多个 Node.js 版本,对于开发和测试在不同 Node.js 版本上运行的应用程序非常有用。 1、卸载node&#…