如何设置proxy_pass得到想要的地址?
How to set the proxy_pass to get the desired address?
我一直在努力为我们的用例设置 Nginx。
当我使用以下配置设置 Nginx 时:
location /dep-core {
proxy_pass http://node-server:7070/;
}
并使用以下端点调用服务器:
<END-POINT>/dep-core/api/login
呼叫被重定向到
<ADDRESS-AFTER-RESOLUTION>//api/login
有两个前导 //s.
当我在 7070 之后删除 proxy_pass 中的尾随 / 时:
location /dep-core {
proxy_pass http://node-server:7070;
}
呼叫被重定向到
<ADDRESS-AFTER-RESOLUTION>/dep-core/api/login
附加了前导 /dep-core。
我希望我的电话重定向到:
<ADDRESS-AFTER-RESOLUTION>/api/login
实现这一目标的标准方法是什么?
为了从 /dep-core/foo
到 /foo
的正确翻译,location
指令需要尾随 /
.
例如:
location /dep-core/ {
proxy_pass http://node-server:7070/;
}
详情见this document。
要将 /dep-core
转换为 /
,您可以在问题的第二部分使用带有巧妙正则表达式的 rewrite...break
。但一个简单的解决方案是为该单一边缘情况添加精确匹配 location
。
例如:
location = /dep-core {
rewrite ^ $uri/ last;
}
location /dep-core/ {
proxy_pass http://node-server:7070/;
}
我一直在努力为我们的用例设置 Nginx。
当我使用以下配置设置 Nginx 时:
location /dep-core {
proxy_pass http://node-server:7070/;
}
并使用以下端点调用服务器:
<END-POINT>/dep-core/api/login
呼叫被重定向到
<ADDRESS-AFTER-RESOLUTION>//api/login
有两个前导 //s.
当我在 7070 之后删除 proxy_pass 中的尾随 / 时:
location /dep-core {
proxy_pass http://node-server:7070;
}
呼叫被重定向到
<ADDRESS-AFTER-RESOLUTION>/dep-core/api/login
附加了前导 /dep-core。
我希望我的电话重定向到:
<ADDRESS-AFTER-RESOLUTION>/api/login
实现这一目标的标准方法是什么?
为了从 /dep-core/foo
到 /foo
的正确翻译,location
指令需要尾随 /
.
例如:
location /dep-core/ {
proxy_pass http://node-server:7070/;
}
详情见this document。
要将 /dep-core
转换为 /
,您可以在问题的第二部分使用带有巧妙正则表达式的 rewrite...break
。但一个简单的解决方案是为该单一边缘情况添加精确匹配 location
。
例如:
location = /dep-core {
rewrite ^ $uri/ last;
}
location /dep-core/ {
proxy_pass http://node-server:7070/;
}