我有一个正在运行的网站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 代理管理器。