Dynamix Nginx proxy-pass 带有来自位置路径的变量
Dynamix Nginx proxy-pass with a variable from the location path
我想要实现的是对给定 URL 使用代理通行证,代理通行证域名取决于位置 URL。
像这样:
location ~ ^/([0-9]+)/api/ {
proxy_pass http://server-:8080;
}
逻辑上 URL 例如:/4/api/auth/login 使用代理 http://server-4: 8080/api/auth/login
我周末都在处理这个问题。但我能够解决它。
首先,每当您想使用变量来构造 proxy_pass 域时,您都需要使用解析器。可以在这篇文章中找到更多详细信息:https://dev.to/danielkun/nginx-everything-about-proxypass-2ona
这就是我解决问题的方法:
location ~ ^/([0-9]+)(/api/.*) {
resolver 127.0.0.11 ipv6=off;
proxy_pass http://server-:8080;
}
如果我们有这样的请求:https://example.com/1/api/auth/login
pass_proxy 会将请求转发到:http://server-1:8080/api/auth/login
我想要实现的是对给定 URL 使用代理通行证,代理通行证域名取决于位置 URL。 像这样:
location ~ ^/([0-9]+)/api/ {
proxy_pass http://server-:8080;
}
逻辑上 URL 例如:/4/api/auth/login 使用代理 http://server-4: 8080/api/auth/login
我周末都在处理这个问题。但我能够解决它。 首先,每当您想使用变量来构造 proxy_pass 域时,您都需要使用解析器。可以在这篇文章中找到更多详细信息:https://dev.to/danielkun/nginx-everything-about-proxypass-2ona
这就是我解决问题的方法:
location ~ ^/([0-9]+)(/api/.*) {
resolver 127.0.0.11 ipv6=off;
proxy_pass http://server-:8080;
}
如果我们有这样的请求:https://example.com/1/api/auth/login
pass_proxy 会将请求转发到:http://server-1:8080/api/auth/login