1

Это довольно специфический вопрос, но я не смог найти ответ на него. Я использую набор служб в контейнере LXC в Ubuntu 16.04 LTS, в частности игровые серверы. Однако известно, что этот сервис не работает, как и его оболочка. Поэтому, чтобы поддерживать время безотказной работы и баланс нагрузки, когда сервисы зависают или не отвечают, мне нужно иметь возможность перенаправлять трафик UDP и TCP в зависимости от того, реагирует сервис или сервисы или нет.

Чтобы лучше объяснить сценарий, у меня есть контейнер LXC, открытый общедоступному IP, с другим контейнером LXC, вложенным с iptables, перенаправляющим трафик через порт 21025 во вложенный контейнер. Внутри этого контейнера, если сервисы, принимающие трафик (называемые ServiceWrapper и ServiceMain), не отвечают, трафик должен идти к другому сервису через другой порт, который мы назовем ServiceFallback . В противном случае трафик передается в соответствии с ожиданиями ServiceWrapper, который затем отправляет трафик в ServiceMain .

Моя текущая попытка реализовать такую маршрутизацию была в том, чтобы использовать HAProxy для балансировки нагрузки между ServiceWrapper и ServiceFallback , однако на первый взгляд кажется, что HAProxy не обнаруживает и не разрешает перенаправление дополнительных портов в зависимости от того, как происходит балансировка нагрузки ServiceWrapper и ServiceFallback . Видите ли, ServiceMain принимает трафик UDP через другой порт, чтобы упростить запросы сервера, такие как версия, имя хоста и т.д. И т.д. Насколько я могу судить, HAProxy не будет маршрутизировать или обнаруживать трафик UDP.

Я в отчаянии, чтобы заставить это работать. Я знаю, что это возможно, потому что точная настройка, которую я пытаюсь выполнить, сработала для одного из моих прямых конкурентов, однако они, похоже, неохотно делятся со мной даже пакетами, которые они использовали для этого (разумно, но да).

1 ответ1

0

NGINX должен делать все, что вам нужно. Он поддерживает маршрутизацию UDP и имеет как пассивную, так и активную проверку работоспособности, так что вы можете настроить способ определения, работает ли основная служба или нет. Его можно настроить так, чтобы он возвращался к службе резервного копирования только в случае сбоя проверки работоспособности.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .