У меня есть контейнер haproxy под названием «proxy_container», работающий на порту 80 на моем локальном хосте. С двумя другими контейнерами под названием «client_container», который представляет собой просто html-файл, и «server_container», который представляет собой базовый API-интерфейс nodejs, который я написал. Все они подключены к одной сети докеров под названием «appnet».
докер пс:
ИДЕНТИФИКАТОР КОНТЕЙНЕРА ИЗОБРАЖЕНИЕ КОМАНДА СОЗДАНА СТАТУС ИМЕНА ПОРТОВ
f6fa17dbd444 ebdc86ff4850 "docker-entrypoint.s™" Около минуты назад Наверх Около минуты 80/tcp server_container
32ebf717e9de 8657ad512e31 "/docker-entrypoint.…" Около минуты назад Наверх Около минуты 80/tcp client_container
bc3f94b668cd bd8334ffaaad "docker-entrypoint.s…" Около минуты назад Наверх Около минуты 0.0.0.0:80->80/tcp proxy_container
Вот мой файл haproxy.cfg:
Глобальный
демон
максконн 2000
сокет статистики /var/run/haproxy.sock режим 777
докер распознавателей
DNS сервера имен "${DNS_TCP_ADDR}:${DNS_TCP_PORT}" #127.0.0.11:53
значения по умолчанию
режим http
опция
опцион вперед для
опция httpclose
опция httplog
повторяет 3
проверка таймаута 5с
тайм-аут клиента 5s
тайм-аут соединения 10 сек.
тайм-аут сервера 10 секунд
главный интерфейс
привязать *:80
режим http
опция http-server-close
опцион принудительно закрыть
таймаут клиента 60s
тайм-аут соединения 10 сек.
таймаут сервера 1м
acl url_ui path_beg /home
acl url_api path_beg /api
use_backend пользовательский интерфейс, если url_ui
use_backend API, если url_api
#deafult_backend пользовательский интерфейс
серверный API
# режим http
# API сервера server_container
API-интерфейс сервера server_container.appnet:80 проверить распознаватели докеров разрешить-предпочесть ipv4
серверный пользовательский интерфейс
# режим http
# сервер клиент client_container
сервер-клиент client_container.appnet:80 проверить распознаватели докер-решение-предпочесть ipv4
default_backend пользовательский интерфейс строка, которую я закомментировал, отлично работала при вводе 0.0.0.0/ в моем браузере. Я хочу изменить свою конфигурацию, чтобы 0.0.0.0/home направлял меня на бэкэнд «ui», а 0.0.0.0/api направлял меня на бэкэнд «api».
Дополнительный вопрос: для пути API, как мои пути API nodejs будут работать вместе с этими конфигурациями, которые я хочу?