Ищите решение для сохранения 1 клиента в 1 бэкэнд-сервисе (в контейнерах Docker) с помощью haproxy - PullRequest
0 голосов
/ 01 июня 2019

У меня есть приложение фляги, работающее в контейнерах Docker за контейнером haproxy, управляемым docker-compose. Мне нужно, чтобы после того, как клиент был перенаправлен на внутренний сервер, я хочу, чтобы он имел эксклюзивное использование этого внутреннего сервера до тех пор, пока клиент не сохранит свою работу или не истечет время ожидания из-за неактивности.

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

cat haproxy / haproxy.cfg Глобальный тихий

по умолчанию журнал глобальный режим http опция http-keep-alive опция forwardfor тайм-аут подключения 60-х тайм-аут клиента 3600 с тайм-аут сервера 3600 с сервер по умолчанию init-addr нет

прослушать статистику


resolvers docker_resolver
    nameserver dns 127.0.0.11:53

frontend my-proxy
    bind 0.0.0.0:8081
    use_backend appservice

backend appservice
    balance leastconn
    cookie SERVERUSED insert
    option httpchk HEAD /
    default-server check maxconn 1 maxqueue 0 resolvers docker_resolver
    server appservice upt_appservice_1:5000 cookie S1A
    server appservice upt_appservice_2:5000 cookie S2A
~~~ snip ~~~


multiple clients are being connected to already in-use containers :'(
...