Я новичок в haproxy, но он мне уже очень нравится. Прямо сейчас у меня есть особый вариант использования, для которого я пока не смог найти хороший способ.
ВОПРОС: Можно ли маршрутизировать на бэкэнд-сервер на основе аутентифицированного пользователя?
Что-то вроде ...
userlist EXAMPLEORG
user bob password bob123
user alice password alice987
frontend https
bind *:443
mode tcp
...
use_backend a-servers if { CURRENT_USER bob }
use_backend b-servers if { CURRENT_USER alice }
Но какой будет правильный синтаксис FETCH для (псевдокода) CURRENT_USER?
Фон (= это мои ограничениядля работы с): - Есть несколько прокси-серверов верхнего уровня (squid) - Есть несколько пользователей (~ 50) - Каждому пользователю назначен прокси (т. е. «Джо Доу» должен использовать «upstream-squid-5») -Но назначение может измениться в любое время и - локальная конфигурация прокси (Windows через групповую политику, IOS через профиль) не может быть изменена (достаточно быстро)
(эти пункты выше у меня в руках, и мы неих не нужно обсуждать;))
Первая попытка была предпринята с помощью файла автоматической настройки прокси (PAC), который можно было изменить на сервере и автоматически опрашивать клиенты. (таким образом, только файл pac должен был бы быть развернут один раз на пользователя) НО: на некоторых устройствах это заняло слишком много времени, поэтому это было отклонено как ненадежное
Мои исследования привели меня к СЧАСТЛИВОМ. Моя идея состоит в том, чтобы использовать встроенную функциональность карты для маршрутизации к правому бэкэнду. Но я не могу найти подходящий источник получения, чтобы различать источники запросов. Я знаю, что можно настроить userlist / auth.
Как я уже сказал, я новичок в этом и не смог найти ничего для пользовательской маршрутизации.
Любая помощь или указание в нужном направленииРуководство будет высоко оценено.
Кроме того, если вы знаете гораздо лучшее решение проблемы, я был бы очень признателен.
Спасибо!