Сервер с балансировкой нагрузки перенаправляет на неправильную страницу - PullRequest
0 голосов
/ 06 января 2010

У меня проблема с использованием балансировки нагрузки на моем сервере (с использованием IIS 6). У меня есть веб-сайт менеджера, который работает правильно большую часть времени, но иногда, когда я перехожу на другую страницу внутри этого менеджера, вместо перенаправления на нужную страницу, он перенаправляет на страницу входа в него.

Я не думаю, что это проблема тайм-аута, потому что, если я нажму F5, он перенаправит на нужную страницу. Я предполагаю, что это проблема с балансировкой нагрузки, потому что я пытался запустить диспетчер на другом компьютере без балансировки нагрузки (все еще используя IIS 6), и он работал нормально.

Я использую ASP.NET 3.5.

Может ли кто-нибудь выяснить, почему это происходит?

Ответы [ 2 ]

0 голосов
/ 06 января 2010

Один из способов - хранить сеансы в централизованном месте, как уже указывал DmitryK, другой способ - перенаправить запрос одного сеанса только на один сервер. Так что ASP.NET может найти сессии для этого. Вы можете использовать пересылку запросов на основе файлов cookie или пересылку запросов на основе IP. Пересылка на основе IP может не работать в некоторых случаях, если IP-адреса маскируются каким-либо NAT (преобразованием сетевых адресов). Пожалуйста, проверьте, какие все опции предоставляет ваш балансировщик нагрузки.

0 голосов
/ 06 января 2010

Если информация о сеансе хранится локально на веб-сервере, то когда балансировщик нагрузки отправляет ваш запрос другому серверу (скажем, server2) в этой ферме - server2 не имеет информации о сеансе по вашему запросу и правильно отправляет вас в логин стр. Когда вы нажимаете F5, балансировщик нагрузки отправляет вас на исходный сервер1, который имеет информацию для аутентификации и успешно отображает страницу. Вам необходимо хранить информацию о сеансе в централизованном месте, чтобы все серверы в ферме могли ее видеть.

...