Назад | Перейти на главную страницу

Как настроить автоматический обратный прокси-сервер для переключения при отказе для двух идентичных главных серверов Icecast?

Я пытаюсь сделать просто все двойное с обратным прокси спереди высокая доступность для главного потокового сервера Icecast (т.е. я не говорю здесь о реле Icecast). Итак, три ВМ:

Мой вопрос - как настроить обратный прокси-сервер для автоматического переключения при отказе в случае отказа одной из виртуальных машин Icecast с минимальным прерыванием работы потокового клиента?

Иллюстрация:

                             /--- [ local nginx A <-> icecast master A <- mpd A]
-> [nginx reverse proxy] ---<
                             \--- [ local nginx B <-> icecast master B <- mpd B]

Я сначала попробовал этот простой учебник чтобы настроить обратный прокси-сервер nginx, после чего я мог бы прослушивать поток, открыв виртуальную машину nginx.

upstream backend  {
  ip_hash; # try to send the same clients to the same servers
  server 1.2.3.4;
  server 1.2.3.5 max_fails=1  fail_timeout=15s;
}
server {
  location / {
    proxy_pass  http://backend;
  }
}

Однако когда я останавливаю службу Icecast на виртуальной машине Icecast, которая является конечной точкой, клиент не переключается на хороший Icecast. Даже после обновления по какой-то причине. Я пробовал экспериментировать с разными ip_hash, max_fails, fail_timeout параметры, различные свойства заголовка ответа, размеры буфера и т. д., которые Другой места упомянутый, но ничего не получилось. Мне кажется, что я ловлю рыбу в темноте, и что должно быть какое-то очевидное решение для потокового переключения при отказе, учитывая количество популярных радиостанций. Есть какие-нибудь советы о том, как лучше всего это настроить, или какие-нибудь хорошие ресурсы? Я хочу 302 редиректа или настоящий прокси-сервер?

Я открыт для предложений на основе HAProxy, если это тоже лучший способ.

Как вы обнаружили, обратное проксирование Icecast - не лучшая идея. Нет никакой реальной пользы, хотя есть несколько недостатков, и у вас все еще есть единственная точка отказа: ваш интерфейс.

Icecast - очень стабильный и надежный сервер, и типичные стратегии, используемые для обслуживания веб-страниц через HTTP, не обязательно применимы к нему.

Ваши усилия, вероятно, лучше потратить на знакомство с Icecast, его конфигурацией и ограничениями. Тем не менее, при правильной настройке Icecast легко заполнит соединение со скоростью 1 Гбит / с и обслужит более 20000 одновременных слушателей. Тесты на самом деле показывают, что он масштабируется намного больше, но могут быть и угловые случаи.

После этого спросите себя: Какую проблему с точки зрения доступности я действительно пытаюсь решить и ответом на проблему, скорее всего, будет не «обратный прокси».