У меня есть контейнер haproxy под названием «proxy_container», работающий на порту 80 на моем локальном хосте. С двумя другими контейнерами под названием «client_container», который представляет собой просто html-файл, и «server_container», который представляет собой базовый API-интерфейс nodejs, который я написал. Все они подключены к одной сети докеров под названием «appnet».
докер пс:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f6fa17dbd444 ebdc86ff4850 "docker-entrypoint.s…" About a minute ago Up About a minute 80/tcp server_container
32ebf717e9de 8657ad512e31 "/docker-entrypoint.…" About a minute ago Up About a minute 80/tcp client_container
bc3f94b668cd bd8334ffaaad "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:80->80/tcp proxy_container
Вот мой файл haproxy.cfg:
global
daemon
maxconn 2000
stats socket /var/run/haproxy.sock mode 777
resolvers docker
nameserver dns "${DNS_TCP_ADDR}:${DNS_TCP_PORT}" #127.0.0.11:53
defaults
mode http
option dontlognull
option forwardfor
option httpclose
option httplog
retries 3
timeout check 5s
timeout client 5s
timeout connect 10s
timeout server 10s
frontend main
bind *:80
mode http
option http-server-close
option forceclose
timeout client 60s
timeout connect 10s
timeout server 1m
acl url_ui path_beg /home
acl url_api path_beg /api
use_backend ui if url_ui
use_backend api if url_api
#deafult_backend ui
backend api
# mode http
# server api server_container
server api server_container.appnet:80 check resolvers docker resolve-prefer ipv4
backend ui
# mode http
# server client client_container
server client client_container.appnet:80 check resolvers docker resolve-prefer ipv4
default_backend пользовательский интерфейс строка, которую я закомментировал, отлично работала при вводе 0.0.0.0/ в моем браузере. Я хочу изменить свою конфигурацию, чтобы 0.0.0.0/home направлял меня на бэкэнд «ui», а 0.0.0.0/api направлял меня на бэкэнд «api».
Дополнительный вопрос: для пути API, как мои пути API nodejs будут работать вместе с этими конфигурациями, которые я хочу?
докер
