You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Nginx location规则将同子域名不同URI请求转发到指定Docker容器

涉及的专业术语

你需要了解的Nginx相关核心术语和指令如下:

  • 反向代理(Reverse Proxy):接收客户端请求后转发到后端上游服务,再把服务响应返回给客户端的机制,Nginx对应核心指令为proxy_pass
  • 路径重写(Path Rewrite):修改客户端请求的URI路径后再转发给后端服务的操作,Nginx对应核心指令为rewrite
  • location 匹配规则:Nginx根据请求URI匹配对应处理逻辑的规则,你场景里用到的^~属于前缀匹配规则,优先级高于正则匹配

符合需求的Nginx配置示例

server {
    listen 80;
    server_name api.MyDomain.com;

    # 全局代理头配置,可复用,解决.NET Core服务IP识别、Swagger跳转异常问题
    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;

    # 匹配API_A的所有请求
    location ^~ /APIA/ {
        # 路径重写:去掉前缀/APIA 或者 /APIA/api,剩余路径和查询参数自动保留
        rewrite ^/APIA(?:/api)?/(.*)$ /$1 break;
        # 转发到Docker Compose同网络下的API_A服务
        proxy_pass http://API_A:80;
    }

    # 匹配API_B的所有请求
    location ^~ /APIB/ {
        rewrite ^/APIB(?:/api)?/(.*)$ /$1 break;
        proxy_pass http://API_B:80;
    }

    # 匹配API_C的所有请求
    location ^~ /APIC/ {
        rewrite ^/APIC(?:/api)?/(.*)$ /$1 break;
        proxy_pass http://API_C:80;
    }
}

配置说明

  • 上述配置完全兼容你给出的所有路径映射规则,无需额外修改即可直接使用
  • 如果你仍在使用Nginx Proxy Manager,不需要替换全局配置,只需要在对应代理站点的「Advanced」选项卡中粘贴上述3个location块配置即可生效
  • 确保Nginx容器和三个API服务在同一个Docker Compose自定义网络下,才能通过服务名直接解析访问后端服务

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 10:45:03