Согласованное хеширование 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 на параметр запроса, полагая, что хеш будет основан на параметре запроса и будет разрешен на один и тот же сервер для обоих восходящих потоков, но это не так.
В некоторых случаях второй восходящий поток разрешается на другой сервер, и я думаю, что это связано с изменением порта.
Есть ли способ сделать согласованное хеширование согласованным для обоих восходящих потоков?
Любая помощь будет оценена.
1 ответ
Хорошо. Я понял, что то, о чем я спрашиваю, неосуществимо. Поэтому вместо создания двух восходящих я создал один, а на вышестоящем сервере установил прокси-сервер 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
.