如何将Nginx配置为将x.example.com/a/xxx代理到a.example.com/xxx

时间:2018-09-15 11:34:06

标签: nginx

我的问题是:

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

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

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

我该如何配置?

1 个答案:

答案 0 :(得分:0)

您需要先从URI中删除/a/前缀,然后再将其传递给上游。您可能可以在同一正则表达式中执行此操作。

例如:

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

您可能需要指定一个resolver指令,以便nginx可以解析$1.example.com的地址。