根据收到的标头在 nginx 中路由流量

根据收到的标头在 nginx 中路由流量

我正在尝试根据收到的标头在我的 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 也没什么意义。)例如:upstreamserver

    proxy_pass http://$http_address.example.com; 

相关内容