首页 > 解决方案 > 多个上游的 Nginx 一致性哈希

问题描述

上游服务器是 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 更改为查询参数,认为哈希将基于查询参数,并且它将为两个上游解析到同一服务器,但事实并非如此。

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

有没有办法使两个上游的一致哈希一致?

任何帮助,将不胜感激。

标签: nginxwowzaconsistent-hashingnginx-upstreams

解决方案


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

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;
   }

}

这有助于我只处理一个指向 port 的上游块8081


推荐阅读