【问题标题】:Nginx Consistent Hashing for Multiple Upstreams多个上游的 Nginx 一致性哈希
【发布时间】:2020-01-19 14:48:18
【问题描述】:

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

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

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

任何帮助将不胜感激。

【问题讨论】:

    标签: nginx wowza consistent-hashing nginx-upstreams


    【解决方案1】:

    好的。我明白我在这里问的是不可行的。 因此,我没有创建两个上游,而是创建了一个,并在上游服务器上设置了一个 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;
       }
    
    }
    

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

    【讨论】:

    • 感谢您回答自己的问题并描述解决方案,以便其他人可以找到它们。非常感激!但是:这真的有效吗?您没有在 server 块的 proxy_pass 指令中使用上游。什么时候叫?
    • @JJ 他们都是不同的服务器。上游块在 server1 上,其他代理在各自的 Wowza 服务器上。如果这能回答您的问题,请告诉我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 2011-02-22
    相关资源
    最近更新 更多