У нас есть набор с балансировкой нагрузки (с использованием Microsoft NLB v6.1) Серверы Windows (Windows Server 2008 R2) с IIS7, на которых размещается ряд веб-приложений. Эти веб-приложения выполняют множество запросов к внешним веб-службам, и это нормально.
Мы обнаружили проблему с этими веб-приложениями, взаимодействующими друг с другом. Скажем, у нас есть веб-приложение по адресу https://app.example.com/
что общается с https://api.example.com/
(обратите внимание на использование SSL, которое, я думаю, делает это еще более проблематичным). Обе app
и api
работают на одних и тех же физических веб-серверах с балансировкой нагрузки с помощью одного и того же физического балансировщика нагрузки.
По какой-то причине это «зацикленное» общение не работает. От нашего интернет-провайдера мы получили объяснение, которое я не очень понимаю, но оно включает в себя «стек IP не понимает, какой сервер будет получать IP-ответ на данный запрос».
Это проблема, которую кому-то и где угодно удалось решить? Мы не хотим связываться с нашими собственными веб-службами иначе, как с ними общаются наши внешние партнеры. Мы хотим использовать один и тот же сертификат SSL, тот же URL и тот же IP-адрес. Это возможно?
Это распространенная проблема. По сути, проблема (насколько я понимаю) в том, что балансировщику нагрузки не нравится, что соединение идет через тот же порт и возвращается к тому же порту.
При использовании физических балансировщиков нагрузки Cisco мне удалось обойти это, применив довольно сложные схемы сети. Не знаю, как сделать то же самое при использовании NLB.