我正在尝试根据收到的标头在我的 nginx 代理中路由流量。
我的基础设施构建方式是,流量被发送到代理,并且带有一个包含我想要路由到的地址的部分的标头。
这是我的代码:
upstream target {
server $http_address.domain.com max_fails=3 fail_timeout=60;
}
server {
listen 80 default_server;
location / {
proxy_pass http://target;
proxy_redirect off;
proxy_http_version 1.1;
}
}
不幸的是,我在启动 nginx 时收到以下错误:
host not found in upstream "$http_address.domain.com"
有什么方法可以根据给定的标头动态编辑服务器的目标 URL?
谢谢。
答案1
Anupstream
server
不接受变量,但你可以直接使用它。(而且,仅用一个proxy_pass
来定义 an 也没什么意义。)例如:upstream
server
proxy_pass http://$http_address.example.com;