首页 > 解决方案 > 如何配置 nginx 代理 x.example.com/a/xxx 到 a.example.com/xxx

问题描述

我的问题是:

  1. 如果我发送请求http://x.example.com/a/sth,这是我的 nginx 代理配置:

    location ~ /([a-z0-9]+) {
        proxy_pass http://$1.example.com:8000/;
    }
    

    但它不能代理到http://a.example.com/sth

我该如何配置?

标签: nginx

解决方案


/a/在向上游传递之前,您需要从 URI 中删除前缀。您可能可以在同一个正则表达式中执行此操作。

例如:

location ~ ^/([a-z0-9]+)/(.*)$ {
    proxy_pass http://$1.example.com:8000/$2$is_args$args;
}

您可能需要指定一个解析器指令,以便nginx可以解析$1.example.com.


推荐阅读