nginx 反向代理使用变量的坑

nginx采用反向代理的时候使用变量的坑

正常情况:

conf 复制代码
location ~ ^/prod-api(?<rest>/.*)?$ {
    # 假设 $mes_backend 形如: http://127.0.0.1:16889
    proxy_pass $mes_backend$rest$is_args$args;

    proxy_http_version 1.1;
    proxy_set_header Host              $host;
    proxy_set_header X-Real-IP         $remote_addr;
    proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    # WebSocket 支持
    proxy_set_header Upgrade           $http_upgrade;
    proxy_set_header Connection        $connection_upgrade;

    # 可选:更稳的请求体转发
    proxy_request_buffering on;
    client_max_body_size 10m;
    proxy_read_timeout 60s;
}

如果你使用变量,仍会把请求转到后端的根路径(或保留了错误的前缀)

预期是 http://域名/prod-api/XXX 到后端是 http://localhost:16888/XXX

实际上到后端是 http://localhost:16888/prod-api/XXX

复制代码
set $mes_backend http://127.0.0.1:16889;

location /prod-api/ {
	proxy_pass $mes_backend;
	
	... 其他代理内容
}

正确写法

复制代码
location ~ ^/prod-api(?<rest>/.*)$ {
  # proxy_pass http://127.0.0.1:16889/;
  # 采用变量的形式,如果是常量的形式就没有这种异常
  proxy_pass $mes_backend$rest;
    
...其他内容
}
相关推荐
cui_ruicheng15 分钟前
Linux进程间通信(三):System V IPC与共享内存
linux·运维·服务器
ACP广源盛139246256732 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
峥无3 小时前
Linux系统编程基石:静态库·动态库·ELF文件·进程地址空间全景图
linux·运维·服务器
码云数智-大飞3 小时前
本地部署大模型:隐私安全与多元优势一站式解读
运维·网络·人工智能
Harvy_没救了4 小时前
【网络部署】 Win11 + VMware CentOS8 + Nginx 文件共享服务 Wiki
运维·网络·nginx
春风有信4 小时前
【2026.05.01】Windows10安装Docker Desktop 4.71.0.0步骤及问题解决
运维·docker·容器
2401_873479405 小时前
断网时如何实时判断IP归属?嵌入本地离线库,保障风控不中断
运维·服务器·网络
守城小轩5 小时前
基于Chrome140的Yahoo自动化(关键词浏览)——需求分析&环境搭建(一)
运维·自动化·chrome devtools·浏览器自动化·指纹浏览器·浏览器开发
handler016 小时前
Linux 内核剖析:进程优先级、上下文切换与 O(1) 调度算法
linux·运维·c语言·开发语言·c++·笔记·算法
日取其半万世不竭8 小时前
LVM 逻辑卷管理:不停机扩容磁盘的正确方式
运维·服务器