我已经完成了基本的 nginx 负载平衡设置,例如
http {
... ## some stuff, log formats, etc.
upstream backend {
server localhost:8001
server localhost:8002
}
server {
listen 80 default_server;
server_name foo.com;
location / {
proxy_pass http://backend/foo/bar/;
}
}
}
但我想用proxy_pass
特定于所选上游服务器的值/变量来参数化 URL。例如,如果选择了端口为 8001 的服务器,我想使用proxy_pass http://backend/foo/bar/8001
,同样,如果选择了端口为 8002 的服务器,我想使用proxy_pass http://backend/foo/bar/8002
(其中backend
显然被所选服务器名称替换,按照 nginx 的常规负载平衡设置)。
有人知道这是否可能吗?
(我知道我可以在 nginx 中做一些自我路由来实现这一点……例如设置两个新的 nginx 地址作为上游,然后proxy_pass
分别设置每个地址,但我想知道是否有办法动态重写传递给上游服务器的 URL后负载平衡系统已选择下一个要尝试的上游服务器。)