带有子路径和正则表达式的 NGINX reverse_proxy

带有子路径和正则表达式的 NGINX reverse_proxy

我有一个正在运行的网站localhost:8001,我希望它可以通过不同的路径访问。我需要使用正则表达式提取部分路径。

工作:

server {
    location /user/amy/ {
        proxy_pass http://localhost:8001/;
    }
}

(但如果我删除后面的斜线,它就会中断8001)。

但是用户名可以是动态的,例如:

mydomain.com/user/amy/ --> localhost:8081/
mydomain.com/user/bob/foo --> localhost:8081/foo

在这两种情况下,我都希望获取用户名以执行子请求。以下是我尝试过的方法:

server {
    location ~ ^/user/([a-z]+)/(.*)$ {
        set $user $1; # do stuff with this later
        proxy_pass http://localhost:8001/$2;
    }
}

它不起作用:我得到了一个重定向次数过多错误。我试过了许多事情似乎没有什么效果。我希望它的工作方式与我首先给出的前缀示例完全相同,只是我提取用户名进行进一步处理。任何帮助都将不胜感激。

答案1

我建议您尝试 Nginx 代理管理器。

相关内容