针对多个上游的Nginx一致哈希

针对多个上游的Nginx一致哈希,nginx,wowza,consistent-hashing,nginx-upstreams,Nginx,Wowza,Consistent Hashing,Nginx Upstreams,上游服务器是wowza。有两条上游 upstream wowza { hash $arg_streamKey consistent; server x.x.x.x:8087; server x.x.x.y:8087; } upstream wowza_thumbnail { hash $arg_streamKey consistent; server x.x.x.x:8086; server x.x.x.y:8086; } 第一个上游指向API,第二个指向缩略

上游服务器是wowza。有两条上游

upstream wowza {
  hash $arg_streamKey consistent;
   server x.x.x.x:8087;
   server x.x.x.y:8087;
}

upstream wowza_thumbnail {
  hash $arg_streamKey consistent;
   server x.x.x.x:8086;
   server x.x.x.y:8086;
}
第一个上游指向API,第二个指向缩略图URI

我将hashKey更改为query param,认为hash将基于query param,它将解析为两个上游的同一服务器,但事实并非如此

在某些情况下,第二个上游解析到不同的服务器,我认为这是由于端口的变化

有没有一种方法可以使两个上游的哈希一致


任何帮助都将不胜感激。

好的。我明白我在这里提出的要求是不可行的。 因此,我没有创建两个上游,而是创建了一个,并在上游服务器上设置了一个Nginx代理,该代理在指向单个端口的路径上传递两个端口

upstream wowza {
  hash $arg_streamKey consistent;
   server x.x.x.x:8081;
   server x.x.x.y:8081;
}
Wowza 1和Wowza 2

server {
    listen 8081;
    server_name _;

    location /thumbnail {
        proxy_pass http://localhost:8086;
    }

   location / {
        proxy_pass http://localhost:8087;
   }

}

这只帮助我处理一个指向端口
8081

的上游块,感谢您回答了自己的问题,并描述了一个解决方案,以便其他人可以找到它们。非常感谢!但是:这真的有效吗?您不使用服务器块的proxy_pass指令中的上游。那叫什么时候?@JJ他们都是不同的服务器。上游块位于server1上,其他代理位于各自的Wowza服务器上。如果这能回答你的问题,请告诉我。