
В настоящее время у нас следующая конфигурация:
[Client] -> [haproxy] -> [Nginx] -> [App Servers]
В настоящее время Nginx устанавливает привязку cookie к серверам приложений, устанавливая cookie, например: public-client
. Однако с появлением HAProxy cookie отсутствует на стороне клиента, и привязка сеанса к серверам приложений нарушается.
Я просматривал документацию и наткнулся на атрибут под названиемаппессияэто могло бы сработать, но похоже, что это устарело. Рекомендуется использоватьпалка-столно я не совсем уверен, как сохранить cookie с этим атрибутом.
Кто-нибудь знает, как этого можно добиться?
Примечание: Я полностью осознаю необходимость дублирования обратных прокси-серверов, но наша архитектура требует этого.
Проблема обнаружена
Поэтому, основываясь на комментарии ниже, я запустил tcdump
HAProxy и сервер Nginx, чтобы проверить, где cookie-файлы не устанавливаются/не передаются.
Команда, которую я выполнил для справки:
sudo /usr/sbin/tcpdump -A -l dst port 80 -i any | grep "^Cookie: "
Это показало мне файлы cookie приложений на серверах HAProxy и Nginx. Однако файл cookie, который должен был установить Nginx, не находился в потоке трафика к HAProxy, что изолировало проблему от того, что Nginx не установил файл cookie.