Nginx proxy_pass反向代理动态端口

Nginx前端+Apache后端:Ubuntu 18.04双Web服务器协同实战 反向代理是现代Web架构的核心模式,其本质是通过分层解耦实现性能与功能的最优平衡。Nginx凭借事件驱动模型在高并发静态服务、SSL终止和流量管控方面具备天然优势;Apache则依托进程/线程模型和模块化设计,在动态脚本执行(如mod_php)、.htaccess实时重写及企业级安全模块(如mod_security)上不可替代。二者协同并非冗余叠加,而是基于职责分离原则的技术互补:Nginx作为边缘网关承担接入层压力,Apache专注业务逻辑层处理。该架构广泛适用于遗留系统平滑迁移、复杂URL重写需求及特定 阅读详情

背景

某项目需要播放第三方监控视频,我方访问域名假定为 my.area.com,第三方的域名假定为 video.other.com,域名不一致就导致浏览器跨域问题无法播放,且第三方拖拖拉拉不想解决,于是只有我方使用 nginx 做反向代理来解决跨域问题。

但是在代理的过程中发现,对方返回的播放端口有N多个且有变更的风险,所以使用 nginx 穷举端口式的代理不是第一选择,就想着 proxy_pass 能不能配置出动态端口进行代理呢,这样我方只需要一次配置就能解决问题。

解决

1、后台程序从第三方平台获取到对方的播放地址后,替换域名、处理端口为访问路径

例如:https://video.other.com:8080/play/id?token=123
处理为:https://my.area.com/8080/play/id?token=123

2、Nginx 代理配置

http {

  server {
    listen 80;
    server_name localhost;

    # 正则匹配请求路径:https://my.area.com/8080/play/id?token=123
    location ~ /(\d+)/play/(.*?)$ {
      # 域名间的代理且使用了参数,就需要配置 DNS 服务器来解析域名
      resolver 114.114.114.114;
      # 取正则匹配上的路径作为端口,实现动态端口的功能
      proxy_pass https://video.other.com:$1/play/$2?$args
    }
  }

}

如此配置变实现了业务动态端口的代理。

详细说明:

  • $1、$2 等代表什么?

$ 代表使用内置参数,在正则匹配中,代表正则组索引,在这里,$1 就代表了 8080,$2 就代表 id

  • location 的匹配为什么要 /(\d+)/play/(.*?)$ 这样配置,配置成 /(\d+)/play/ 不可以么?

proxy_pass 一旦使用了参数,那么就不会对请求地址拼接,而是替换参数操作了,如果配置为 /(\d+)/play/ 将会丢失后面的请求路径,最终代理后的访问路径为:https://video.other.com:8080/play/

  • proxy_pass 为什么要在末尾添加 ?$args 配置?

$args 是 nginx 的内置参数,代表了 GET 请求参数,因为不是地址拼接,所以参数也会丢失,需要手动添加。

另:代理了业务动态端口的功能后,建议使用后台程序来测试功能,用于输出完整访问地址和参数,才能知道配置如何调整。

nginx代理地址避坑指南:斜杠、DNS与502排查实战 反向代理是Nginx最核心的能力之一,而proxy_pass配置中的代理地址看似简单,却隐藏着大量导致线上故障的细节。URL末尾的斜杠、localhost的IPv6解析、upstream域名启动时固定解析、HTTP与HTTPS协议错位、多站点server匹配规则,每一项都可能引发502、404或连接拒绝。理解Nginx转发URI的拼接原理,掌握DNS解析与连接池机制,是快速定位代理异常的关键。在实际部署中,无论是静态资源路径错乱、WebSocket握手失败,还是容器化环境下的间歇性故障,都能从代理地址的写法 阅读详情

相关推荐

对比学习损失函数避坑指南:为什么你的自监督模型不收敛?

本文深入剖析对比学习损失函数中的关键陷阱,揭示自监督模型不收敛的根本原因。通过分析温度系数选择、负样本采样策略和特征归一化等核心因素,提供实用解决方案。实验数据表明,正确设置温度系数τ(建议0.07起)可提升30%性能,而MoCo风格的负样本队列比SimCLR方案在小批量时准确率高6-8%。

nokia的博客 922

Ubuntu 18.04下Nginx反向代理+Apache后端实战配置

反向代理是现代Web架构的核心模式,其本质是通过前置高性能网关分发请求,实现动静分离与协议卸载。Nginx凭借事件驱动模型和低内存开销,天然适合作为HTTP/HTTPS入口层;Apache则依托成熟的模块生态(如mod_rewrite、mod_security)专注动态内容处理。二者协同的关键在于网络隔离(Apache绑定127.0.0.1)、协议对齐(HTTP/1.1长连接与KeepAlive协调)及压缩分工(Nginx接管Brotli静态压缩)。该方案广泛应用于WordPress迁移、遗留PHP系统加速

weixin_30591551的博客 349

UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 0-4: ordinal not in range(128)

python3报错处理:UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-4: ordinal not in range(128) 一、报错场景 // 报错代码 Traceback (most recent call last): File "test_autoo3_2.py", line 214, in <module> main() File "test_autoo3_2.py",

浪里小飞侠的博客 4201

Ubuntu 20.04下Nginx与Apache共存配置实战

Web服务器架构中,Nginx和Apache并非互斥选项,而是可协同工作的互补组件。Nginx基于事件驱动的异步非阻塞I/O模型,擅长高并发静态资源服务、SSL终止与反向代理;Apache则在动态内容处理(如PHP/Perl模块化运行)、.htaccess重写及安全模块(mod_security)方面具备成熟生态。二者混合部署能兼顾性能与兼容性,尤其适用于遗留系统升级、多租户平台演进等生产场景。其技术价值体现在:卸载静态压力、复用现有配置、统一安全策略与流量治理。典型应用包括电商大促架构、政务系统平滑迁移及

weixin_34146805的博客 1470

3D slicer查看形变场

3Dslice显示数据和形变场 将需要可视化的数据也导入3Dslice,注意描述为volume(图1a),如果没有显示是因为路径中不能有中文,也就是moving图像。 (b) 图1、数据导入形变场和 将相应的形变场数据直接拖入3Dslice,并修改描述为形变场(图1b)。 点击transform菜单图2(a),然后勾选形变场可视化图2(b)。 (b) 图2...

fanre的专栏 1947

LCD、LED、OLED、Mini LED、Micro LED、全阵列LED、QLED、QD-OLED、QNED、AMOLED是什么意思?

LCD(液晶显示器,Liquid Crystal Display)定义:LCD 是一种利用液晶材料控制光线通过的显示技术,需依靠背光源(如冷阴极荧光灯 CCFL 或 LED)照亮液晶层以形成图像。技术原理:液晶分子在电场作用下改变排列,控制背光通过的强度和颜色。液晶本身不发光,需外部光源。特点:结构包括背光层、液晶层、彩色滤光片和偏光片。响应时间较慢,黑色表现因背光漏光而偏灰。LED(发光二极管显示,Light Emitting Diode)定义。

中国最威武的城市!武功军威-武威,铁骨铮铮! 3427

nginx 之 proxy_pass详解

日常不管是研发还是运维,都多少会使用Nginx服务,很多情况Nginx用于反向代理,那就离不开使用proxy_pass,有些同学会对 proxy_pass 转发代理时 后面url加 /、后面url没有 /、后面url添加其它路由等场景,不能很明白其中的意思,下面来聊聊这些分别代表什么意思。结果:代理到URL:http://127.0.0.1/hello/world.html。结果:代理到URL:http://127.0.0.1/test/world.html。第二种场景 后面url没有 /

z69183787的专栏 1万+

Dify 本地插件安装失败?别慌,这篇教程手把手教你解决(解决 the plugin you want to install has a bad signature 报错的问题)

🤯dify安装本地插件报错 PluginDaemonBadRequestError: plugin verification has been enabled, and the plugin you want to install has a bad signature。的解决方案!

XiaoqiangClub的博客 3986

nginx(六十)proxy模块(一)proxy_pass指令

proxy_pass深入讲解

wzj_110的博客 1万+

【工具插件类教学】Unity翻书效果插件Book-Page Curl Pro教程

特征: • 从左到右和从右到左翻页 • 与画布缩放器 配合使用 • 可配置的自动翻转脚本 • 支持向页面 添加 UI 元素 • 支持透明页面 • 适用于“世界空间”画布

纯技术流日常开发商业开发记录总结等 3674

UNet改进(52):轴向+代理注意力让UNet既轻快又精准

本文提出了一种改进的UNet架构,通过引入轴向注意力代理模块增强医学图像分割性能。该模块将二维自注意力分解为行列两个一维注意力操作,结合可学习代理节点进行全局信息聚合,在保持计算效率的同时提升模型对长距离依赖的建模能力。实验表明,该方法在多个医学图像数据集上较传统UNet提升3.2%-5.7%的Dice系数,边界质量显著改善。该方案特别适用于具有方向性结构的医学图像分割任务,如血管、器官等,在计算复杂度和分割精度之间实现了良好平衡。

2501_91516851的博客 327

nginx的location与proxy_pass指令超详细讲解及其有无斜杠( / )结尾的区别

假定服务器上有/var/www/book-store/books/和/var/www/book-store/books/society/这两个目录,当访问http://localhost/books和http://localhost/books/society时,都会返回301重定向,且重定向的地址为http://localhost/books/和http://localhost/books/society/是的,你没看错,对locationsr的配置里,其最后一个字符为斜杠的特殊处理,就仅此而已了。

thlzjfefe的博客 1万+

GEE:本地影像上传到GEE的Assets中,并输入机器学习算法中作为特征变量

当我们在 Google Earth Engine(GEE)中应用机器学习算法时,会输入一些影像作为特征变量数据,进一步根据这些特征影像去推理未知区域的数据。但是 GEE 平台上计算特征变量的 API 函数并不是非常全面,我们希望获得更多的特征用于分类。这个时候,我们可以将本地计算的特征影像上传到 GEE 中进行后续处理。本文记录了从本地上传特征数据到 GEE 的 Assets 中的教程,用于后续在 GEE 中分类或者回归使用。本文也可作为《》一文的补充。

养乐多的博客 1730

Nginx(反向代理+多端口访问+负载均衡+动静分离+Nginx常用命令+集群主备)

正向代理: 客户端(需要配置代理服务器)—>局域网—>Internet 客户若访问局域网外部的Internet,需要通过局域网的代理服务器进行 反向代理 客户端—>反向代理服务器---->目标服务器 客户端不需要任何配置,只需要将请求发送给反向代理服务器 对外暴露的是代理服务器,而隐藏真实的目标服务器 负载均衡 动静分离 ......

usa_washington的博客 4669

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

nginx中proxy_pass配置说明

官方说明:在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。 一般proxy_pass后面有四种情况:ip:端口;ip:端口/;ip:端口/上下文;ip:端口/上下文/下面我就这四种情况进行举例说明。 例如访问地址:http://192.168.2.39:8081/hussarApi/test/getList 1、ip:端口 location /hussarApi/ { proxy_pass

xiaowochaochao的博客 7798

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

nginx反向代理proxy_pass代理地址全解析:斜杠、多系统、WebSocket与高频报错

反向代理是nginx最核心的能力之一,而proxy_pass后面的代理地址写法,直接影响请求能否被正确转发。很多开发者在配置时被“带不带斜杠”“变量URI”“rewrite与proxy_pass交互”等细节绊倒,导致同端口多系统部署、WebSocket长连接、keepalive连接复用等场景频繁出问题。理解nginx对URI的处理规则,掌握proxy_pass的语义,是高效排查403、302跳转、QUIC协议错误等高频故障的关键。无论是路径分流还是域名分流,无论是代理freeswitch的ws端口还是配置u

weixin_32869687的博客 100

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Nginx反向代理Apache共存配置实战(Ubuntu 14.04)

反向代理是现代Web架构中实现服务解耦与性能优化的核心技术,其原理在于前端服务器接收请求后,按策略将流量分发至后端应用服务器,既保留原有业务逻辑兼容性,又提升静态资源处理效率与并发承载能力。该技术广泛应用于老旧系统平滑升级、前后端分离部署及HTTPS终止等场景。在Ubuntu 14.04这类长期稳定但软件版本较旧的环境中,Nginx作为轻量高效反向代理层,与Apache深度集成PHP生态的能力形成互补优势,尤其适合WordPress、Drupal等依赖.htaccess规则的遗留系统演进。本文聚焦rever

afeyfre41671的博客 467

Linux 运维:Nginx 虚拟主机、HTTPS、反向代理

Nginx 高性能Web服务,可实现。配置层级:全局模块 → events核心模块 → http业务模块,支持include拆分配置文件。

2503_92430124的博客 520

深度解析Nginx反向代理中$host、$http_host与$proxy_host的区别与选择

在HTTP反向代理场景中,Host头是后端服务识别域名、生成重定向地址、维持会话的关键信息。Nginx作为使用最广泛的反向代理服务器,提供了多个与Host相关的变量,其中$host、$http_host与$proxy_host的取值逻辑各不相同。$http_host直接搬运请求头原文,可能缺失且保留端口;$host经过优先级规范化,永远有值并自动去除端口;$proxy_host则完全取决于proxy_pass配置的目标。理解三者的求值原理,能有效避免后端生成错误跳转、Cookie作用域混乱、虚拟主机匹配失效

weixin_31031711的博客 255

Nginx 服务器

反向代理(reverse proxy),指的是**代理外网用户的请求到内部的指定的服务器,并将数据返回给用户。**客户端不直接与后端服务器进行通信,而是与反向代理服务器进行通信,隐藏了后端服务器的 IP 地址。反向代理的主要作用负载均衡:Nginx可以将传入的请求分发给多个后端服务器,以平衡服务器的负载,提高系统性能和可靠性。缓存功能:Nginx可以缓存静态文件或动态页面,减轻服务器的负载,提高响应速度。动静分离。

wz9754的博客 202

Nginx服务和ECshop项目实战

反向代理(reverse proxy),指的是**代理外网用户的请求到内部的指定的服务器,并将数据返回给用户。**客户端不直接与后端服务器进行通信,而是与反向代理服务器进行通信,隐藏了后端服务器的 IP 地址。反向代理的主要作用负载均衡:Nginx可以将传入的请求分发给多个后端服务器,以平衡服务器的负载,提高系统性能和可靠性。缓存功能:Nginx可以缓存静态文件或动态页面,减轻服务器的负载,提高响应速度。动静分离。

YLCqq3453264797的博客 194

Nginx反向代理Host变量详解:$http_host、$host与$proxy_host区别

在Nginx反向代理配置中,Host头的传递直接影响多站点虚拟主机路由与后端应用逻辑。HTTP请求头中的Host字段是客户端与服务器之间域名识别的基础,而Nginx提供了$http_host、$host、$proxy_host三个易混淆的变量,分别代表客户端原始请求、经Nginx规范化后的Host以及代理目标标识。理解三者的来源与取值规则,是避免后端收到错误域名、跳转链接畸形等故障的关键。例如,在upstream分组场景下使用$proxy_host会导致后端收到分组名而非真实域名,从而无法正确路由。通过分析

weixin_42607969的博客 175

nginx配置域名后面的端口自动拼接指定端口

如果你希望用户访问 `example.com` 后自动跳转到带端口号的地址(例如 `http://example.com:8080`),你可以使用 `return` 或 `rewrite` 进行重定向。例如,如果你想让 `example.com` 自动拼接端口 `8080`,你可以这样配置:```nginx。例如,将所有访问 `example.com` 的请求强制重定向到带端口的 URL:```nginx。如果你想更灵活地控制端口拼接,也可以使用 `rewrite` 规则来实现:```nginx。

qq_33665793的博客 1420

Nginx反向代理502故障排查全攻略:日志分析与配置调优

在Web服务架构中,反向代理是介于客户端与后端服务器之间的关键中间层,它负责请求转发与响应回传。当用户访问出现502 Bad Gateway时,通常意味着Nginx作为网关未能从上游服务获得有效响应。理解502背后的原理,有助于快速定位问题:故障并非出在客户端到Nginx这一段,而是集中在Nginx与上游服务的连接与响应链路。通过分析Nginx错误日志中的connect() failed、upstream prematurely closed等关键字,结合端口监听、进程状态、防火墙策略及proxy_pass

weixin_32715349的博客 283

nginx反向代理

官方文档: https://nginx.org/en/docs/http/ngx_http_proxy_module.html。要求:将用户对域 www.pc.com的请求转发给后端服务器处理。

m0_71593537的博客 670

Ubuntu nginx与Apache端口冲突php无法解析解决办法

一、变更apache的端口,方法如下 1.修改Apache监听处理动态请求端口 变更文件 /etc/apache2/sites-abailable/default 的端口 &lt;VirtualHost *:8080&gt;  ...... &lt;/VirtualHost&gt; 2.修改Apache监听端口 变更文件 /etc/apache2/ports.conf 的端口 ...

asas043的专栏 1181
上一篇: JAVA 做非对称加密(RSA)
下一篇: JT905实现(一):协议的简单讲解
网上搬砖
博客等级 码龄6年 4粉丝 9原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值