У меня есть приложение фляги, работающее в контейнерах 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 :'(