Изменение значения сеанса для входа нескольких пользователей с одной учетной записью + шлюз приложений Azure - PullRequest
0 голосов
/ 09 мая 2018

У меня есть веб-сайт, работающий на виртуальных машинах под управлением Azure VMSS. Кроме того, существует публичный балансировщик нагрузки. Кроме того, у шлюза приложений с внутренним пулом того же общедоступного IP-адреса балансировщика нагрузки. И наконец, в Azure DNS у меня есть запись публичного IP-адреса шлюза приложений Azure. Проблема заключается в том, что когда несколько пользователей входят в систему с одним и тем же идентификатором пользователя на соответствующих компьютерах, тогда несколько значений сеанса каким-то образом взаимозаменяются, что приводит к дополнительной ошибке функциональности, поскольку эти значения сеанса сохраняются и затем извлекаются из базы данных. Несколько баллов:

1) Я испробовал все возможные комбинации сохраняемости сеансов Affinity и Load Balancer на основе cookie-файлов App Gateway, но безуспешно.

2) Ранее он был размещен на AWS, и все работало нормально. У него был классический балансировщик нагрузки AWS и Barracuda WAF.

Кто-нибудь сталкивался с такой же проблемой раньше? Согласно этому https://support.microsoft.com/en-in/help/4033827/troubleshooting-azure-application-gateway-session-affinity-issues нужно ли добавлять полное доменное имя для бэкэнд-пулов, так как сейчас у каждого бэкэнд-пула есть IP?

Ответы [ 2 ]

0 голосов
/ 30 июля 2018

Вам не нужен дополнительный балансировщик нагрузки за шлюзом приложений. Настройте сам Application Gateway, это балансировщик нагрузки уровня 7 (HTTP), способный балансировать нагрузку веб-трафика. Обратитесь ниже URL: https://docs.microsoft.com/en-us/azure/application-gateway/create-vmss-template

0 голосов
/ 11 июня 2018

Не следует указывать серверную часть Application Gateway на IP-адрес балансировщика нагрузки, если вы хотите сохранить соответствие сеанса. Более подробная информация ниже. Чтобы решить эту проблему, вы должны напрямую добавить VMSS в качестве члена внутреннего пула шлюза приложений. Вы можете сделать это через портал или PowerShell / CLI.

Когда вы указываете бэкэнду IP-адрес балансировщика нагрузки, балансировщик нагрузки выполняет хэширование с 5 кортежами (src IP, src port, dest IP, dest port, protocol) и отправляет трафик экземпляру в VMSS на основе хеша. Таким образом, в вашей настройке пользовательский запрос приходит к Application Gateway, который выполняет циклическое распределение, а затем переходит к Load Balancer, который снова выполняет хэш из 5 кортежей. Это вызывает вышеуказанную проблему.

...