当前位置: 首页 > news >正文

Nginx:proxy_pass指令

proxy_pass 指令在 Nginx 中是实现反向代理和负载均衡的重要指令。

一. 反向代理

在反向代理的场景下,proxy_pass 指令用于将接收到的请求转发给另一个后端服务器。后端服务器地址可以是 IP 地址加端口、域名加端口、或者一个完整的 URL。

注意事项

proxy_pass 后面的 URL 末尾是否存在 / 的处理逻辑不同。如果在 proxy_pass 后面的 URL 加 /,表示绝对根路径;如果没有 /,表示相对路径,可能会把匹配的路径部分也给代理走。

示例如下:

情况一
location /api/ {proxy_pass http://localhost:8080/;
}location /V1/ {proxy_pass http://localhost:8080/api/;
}

对于访问 http://example.com/api/test,Nginx 会将其转发到 http://localhost:8080/test。

对于访问 http://example.com/V1/data,Nginx 会将其转发到 http://localhost:8080/api/data。

注意:如果 proxy_pass 指令包含了一个 URI 路径(/api/),Nginx 会将这个路径与原始请求 URI 中匹配 location 块后剩余的部分(data)进行拼接。在拼接时,,Nginx 会确保路径的拼接是正确的,并且没有不必要的双斜杠(//)。

情况二
location /api/ {proxy_pass http://localhost:8080;
}

对于访问 http://example.com/api/test,Nginx 会将其转发到 http://localhost:8080/api/test。

情况三
location /V1 {proxy_pass http://localhost:8080/api;
}

对于访问 http://example.com/V1/data,Nginx 会将其转发到 http://localhost:8080/api/data。

注意:确保 location 块和 proxy_pass 指令的路径部分要么都加斜杠(/),要么都不加斜杠。

情况四
location ~ /api/ {proxy_pass http://localhost:8080;        # 不可以写成 8080/...
}

对于访问 http://example.com/api/test,Nginx 会将其转发到 http://localhost:8080/test。

注意:当 location 使用正则表达式来匹配请求的 URI 时,proxy_pass 应该只包含主机名和端口号,而不应该包含任何 URI 路径。

二. 负载均衡

在负载均衡的场景下,proxy_pass 指令与 upstream 模块一起使用,用于将请求分发到多个后端服务器中的一个。

upstream backend-servers {  server srv1.example.com;  server srv2.example.com;  server srv3.example.com;  
}  server {listen 80;server_name   www.example.com;location /api/ {proxy_pass  http://backend-servers;}
}

负载均衡默认使用的是轮询算法,按照时间先后来分发请求,第一个 request 走 srv1.example.com,第二个 request 走 srv2.example.com … 以此类推。

相关文章:

Nginx:proxy_pass指令

proxy_pass 指令在 Nginx 中是实现反向代理和负载均衡的重要指令。 一. 反向代理 在反向代理的场景下,proxy_pass 指令用于将接收到的请求转发给另一个后端服务器。后端服务器地址可以是 IP 地址加端口、域名加端口、或者一个完整的 URL。 注意事项 proxy_pass …...

【AI学习】Mamba学习(十):HiPPO总结

前面用五篇文章陆续学了HiPPO框架。 这里再进行一下总结。 总结 HiPPO,高阶多项式投影,high-order polynomial projection operators 为了解决从序列数据中建模和学习的问题,尤其是长序列,十万甚至百万长度的序列,使…...

AI编程新纪元:Cursor与V0引领的技术变革

#1024程序员节 | 征文# AI编程新纪元:Cursor与V0引领的技术变革 作为一名SAP业务顾问,虽然我懂一些ABAP开发,但是我对于前后端开发是完全不懂的,我一直对前后端开发怀有浓厚兴趣,总想着自己能开发出一些好玩的东西&…...

python——类

问:小编为什么突然开始发python?难道C语言你不行了? 废话少说,让我们进入python中的类的学习!! (一)基本知识 (1)掌握类的概念 1、类的定义: 即…...

走廊泼水节——求维持最小生成树的完全图的最小边权和

题目 思考 代码 #include <bits/stdc.h> using namespace std; const int N 6010; const int M N; int p[N], sz[N]; struct edge{int a;int b;int c;bool operator < (const edge& v) const{return c < v.c;} }e[M]; int find(int x) {if(p[x] ! x) p[x] …...

LC:动态规划-买卖股票

文章目录 121. 买卖股票的最佳时机122. 买卖股票的最佳时机 II714. 买卖股票的最佳时机含手续费309. 买卖股票的最佳时机含冷冻期 121. 买卖股票的最佳时机 链接&#xff1a;https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/description/ 使用贪心&#xff0c…...

FLINK SQL 任务参数

在Flink SQL任务中&#xff0c;参数配置对于任务的性能和稳定性至关重要。以下是对运行时参数、优化器参数和表参数的详细解析&#xff1a; 一、运行时参数 运行时参数主要影响Flink作业在执行过程中的行为。以下是一些关键的运行时参数&#xff1a; 并行度&#xff08;Para…...

HCIP——以太网交换安全(四)DHCP Snooping

目录 一、DHCP Snooping的知识点 二、DHCP Snooping实验拓扑 三、总结 一、DHCP Snooping的知识点 1.1、DHCP snooping 概述&#xff1a; ①DHCP Snooping使能DHCP的一种安全特性&#xff0c;用于保证DHCP客户端从合法的DHCP服务端获取IP地址。DHCP服务器记录DHCP客户端IP…...

k8s worker 节点关机 sts 管理的 pod 无法迁移

背景 1.28.2 版本 k8s 中的一台 worker 节点内存异常&#xff0c;需要关机换内存&#xff0c;正好可以测试一下 pod 的迁移。 发现 deployment 管理的 pod 是能够重新创建飘到其他节点上的&#xff0c;但是 statefulset 管理的 pod 一直处于 Terminating 状态无法迁移&#…...

排序04 视频播放建模

视频播放时长 用p拟合y&#xff0c;t是用户的实际观看时长&#xff0c;用y和p熵作为损失函数&#xff0c;使得p接近y。 输出z,对z做sigmoid变换。 exp(z)可以视为对播放时长的预估 视频完播 回归方法 二元分类方法 调整&#xff1a;预估完播率不能直接使用...

【常见大模型API调用】第三篇:清华智谱--智谱AI

1. 公司及模型介绍 智谱AI是一家由清华大学计算机系知识工程实验室的技术成果转化而来的AI知识智能技术开发商。智谱AI致力于打造新一代认知智能大模型&#xff0c;专注于做大模型的中国创新。 2024年1月16日&#xff0c;智谱AI在首届技术开放日上发布了新一代基座大模型GLM-…...

LayerSkip – Meta推出加速大型语言模型推理过程的技术

我们提出的 LayerSkip 是一种端到端的解决方案&#xff0c;可加快大型语言模型&#xff08;LLM&#xff09;的推理速度。 首先&#xff0c;在训练过程中&#xff0c;我们采用了层间丢弃技术(layer dropout)&#xff0c;早期层间丢弃率较低&#xff0c;后期层间丢弃率较高。 其次…...

环境变量与本地变量(Linux)

引言 在当今的计算机技术领域&#xff0c;Linux操作系统以其稳定性和灵活性而广受欢迎。它不仅是服务器和开发者的首选平台&#xff0c;也是探索计算机科学和系统编程的宝库。在这个强大的操作系统中&#xff0c;环境变量与本地变量扮演着至关重要的角色&#xff0c;它们是管理…...

【完-网络安全】Windows防火墙及出入站规则

文章目录 防火墙入站和出站的区别域网络、专用网络、公用网络的区别 防火墙 防火墙默认状态一般是出站允许&#xff0c;入站阻止。 入站和出站的区别 入站就是别人来访问我们的主机&#xff0c;也就是正向shell的操作 出站就是反向shell&#xff0c;主机需要主动连接kali&am…...

Vue学习记录之十七 css中样式穿透及新特征介绍

一、scoped原理 在vue页面的css中,有一个设置为scoped,使用以后dom的节点会出现下面的规则。其实我们打完包就是一个html页面,如果不做处理,将会导致css混乱。 给HTML的DOM节点加一个不重复data属性(形如:data-v-123)来表示他的唯一性在每句css选择器的末尾(编译后的生成的…...

Nature 正刊丨海洋涡旋中常见的地下热浪和寒潮

01摘要 由于全球变暖&#xff0c;极端海洋温度事件变得越来越普遍&#xff0c;造成了灾难性的生态和社会经济影响1,2,3,4,5。尽管基于卫星观测对表层海洋热浪&#xff08;MHW&#xff09;和海洋寒潮&#xff08;MCS&#xff09;进行了广泛的研究6,7&#xff0c;但我们对这些极…...

代码随想录算法训练营第六十二天| prim算法,kruskal算法

训练营六十二天打卡&#xff0c;图论比较难&#xff0c;坚持下来胜利就在眼前&#xff01; 53.卡码网【寻宝】 题目链接 解题过程 没做过类似的题目&#xff0c;跟着答案敲了一遍最小生成树 可以使用 prim算法 也可以使用 kruskal算法计算出来。prim算法 是从节点的角度 采用…...

Newstar_week1_week2_wp

week1 wp crypto 一眼秒了 n费马分解再rsa flag&#xff1a; import libnum import gmpy2 from Crypto.Util.number import * p 9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297…...

今天我们研究一段代码(异或位运算)

let a 18 // 甲 let b 20 // 乙a a ^ b b a ^ b a a ^ b console.log("a",a) // a 20 console.log("b",b) // b 18今天我们就研究上面这一段代码&#xff0c;简单解释一下&#xff0c;初始化一个a 18 b 20&#xff0c; 中间经过了三次的异或之后…...

pycharm中使用ctrl+鼠标滚轮改变字体大小

文章目录 pycharm使用ctrl鼠标滚轮改变字体大小1.打开pycharm选择file2.选择setting4.选择keymap&#xff0c;然后再右边的输入框中输入increase进行增大字体4.鼠标选择后&#xff0c;点击添加鼠标快捷方式&#xff0c;然后设置鼠标滚轮往上增大字体。5.设置缩小字体&#xff0…...

【算法-动态规划】打家劫舍专题

文章目录 1.打家劫舍1.1一维数组1.2三变量法1.3双数组法 2.打家劫舍22.1双数组法2.2 三变量法 3.打家劫舍33.1动态规划3.2双变量法 4.删除相邻数字的最大分数4.1双状态数组4.2一维数组4.3三变量法 1.打家劫舍 198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 1.1一维数…...

关于技术管理者的一些思考

前 言 在软件开发领域&#xff0c;当一名资深工程师有机会成为一名技术管理者的时候&#xff0c;通常他/她的反应是什么&#xff1f;兴奋、担扰、无奈还是推托&#xff0c;具体是什么心情也许对结果并不重要&#xff0c;更加重要是在一刻&#xff0c;我们一定要问问我们内心的…...

Alpha-CLIP: A CLIP Model Focusing on Wherever You Want CVPR 2024

在原始的接受RGB三通道输入的CLIP模型的上额外增加了一个alpha通道。在千万量级的RGBA-region的图像文本对上进行训练后&#xff0c;Alpha-CLIP可以在保证CLIP原始感知能力的前提下&#xff0c;关注到任意指定区域。 GitHub - SunzeY/AlphaCLIP: [CVPR 2024] Alpha-CLIP: A CLI…...

Golang | Leetcode Golang题解之第495题提莫攻击

题目&#xff1a; 题解&#xff1a; func findPoisonedDuration(timeSeries []int, duration int) (ans int) {expired : 0for _, t : range timeSeries {if t > expired {ans duration} else {ans t duration - expired}expired t duration}return }...

04 go语言(golang) - 变量和赋值过程

变量 在Go语言中&#xff0c;变量的定义和初始化是编程的基础部分。Go提供了多种方式来声明和初始化变量&#xff0c;以适应不同的使用场景。 基本变量声明 使用var关键字&#xff1a; 使用var关键字可以在函数内部或外部声明变量。如果在函数外部声明&#xff0c;该变量为全…...

语言/图像/视频模型一网打尽!BigModel大模型开放平台助力开发者轻松打造AI新应用!

2024年8⽉28⽇&#xff0c;在ACM SIGKDD&#xff08;国际数据挖掘与知识发现⼤会&#xff0c;KDD&#xff09;上会议现场&#xff0c;智谱AI重磅推出了新⼀代全⾃研基座⼤模型 GLM-4-Plus、图像/视频理解模型 GLM-4V-Plus 和⽂⽣图模型 CogView3-Plus。这些新模型&#xff0c;已…...

Go语言Linux环境搭建以编写第一个Go程序

目录 文章目录 目录Go语言入门1、说明2、CentOS7安装Go3、编写第一个程序3.1、编写程序3.2、运行程序3.3、生成二进制文件4、编写第一个web程序4.1、编写代码4.2、运行程序4.3、测试访问4.4、生成二进制配置Vim-go语法高亮1)、下载和设置Vundle.vim(vim安装插件的工具)2)、…...

使用 Go 构建一个最小的 API 应用

最近有项目要使用 Go 开发&#xff0c;作为一个. NET Core 选手&#xff0c;准备先撸一个包含 CRUD 的最小 MVP 项目练手。 要创建一个 TODO 应用&#xff0c;会创建下面这些接口&#xff1a; APIDescriptionRequest bodyResponse bodyGET /todoitemsGet all to-do itemsNone…...

MySQL 日常维护指南:常见任务、频率及问题解决

MySQL 作为一种广泛使用的开源关系型数据库&#xff0c;随着数据量和应用复杂性的增加&#xff0c;定期的数据库维护对于保持系统高效运行至关重要。通过合理的日常维护&#xff0c;数据库管理员能够确保 MySQL 数据库的稳定性、性能以及数据的完整性。本文将介绍 MySQL 的常见…...

oracle ORA-24920:列大小对于客户机过大

问题描述 在一次读取某个视图数据过程中&#xff0c;当数据读取到x条时&#xff0c;报错ORA-24920&#xff1a;列大小对于客户机过大。 通过查询资料得知&#xff0c;oracle 数据库升级到了12c&#xff0c;VARCHAR2的容量也从4000升级到了32767。 所以猜测某个字段的长度超过4…...