Назад | Перейти на главную страницу

Веб-сайт через HTTPS дает ошибку 502 на виртуальной машине Azure за общедоступным балансировщиком нагрузки

У меня есть виртуальная машина Azure за общедоступным балансировщиком нагрузки Azure. На виртуальной машине работает веб-сайт. Я могу без проблем загрузить веб-сайт в браузере через HTTP, но когда я пробую HTTPS, я получаю ошибку 502.

У меня настроено правило балансировки нагрузки для отправки 443 на виртуальную машину. Я разрешаю все подключения к 443 через группу безопасности сети. Я трижды проверил конфигурацию и часами смотрел на нее, но не могу добиться прогресса.

Еще одна подсказка заключается в том, что если я удаленно подключусь к виртуальной машине, установите мое DNS-имя так, чтобы оно указывало на внутренний IP-адрес виртуальной машины (10.1.2.4 вместо того, чтобы указывать на общедоступный IP-адрес балансировщика нагрузки), и загрузите сайт в браузере через HTTPS работает. Я не уверен, что это значит, кроме того, что моя конфигурация IIS не является проблемой.

Будем очень признательны за любые мысли, и я рад предоставить более подробную информацию. Спасибо!

ИЗМЕНИТЬ 1
В моем балансировщике нагрузки Azure, когда я удалил правило балансировки нагрузки HTTPS и вместо этого добавил правило NAT, перенаправляющее трафик 443 непосредственно на одну из моих виртуальных машин, HTTPS работал отлично. Таким образом, это похоже на мою конфигурацию с использованием HTTPS с правилом балансировки нагрузки.

Я наконец понял проблему, надеюсь, это сэкономит кому-то еще несколько часов. Проблема оказалась в сочетании моих настроек Probe балансировщика нагрузки и привязок IIS для моих сайтов.

В IIS на виртуальных машинах у меня настроено 2 веб-сайта. Поскольку два веб-сайта используют один общедоступный IP-адрес, я использую имя хоста при настройке привязок в IIS. Так что в основном мои привязки настроены на отправку трафика www.site.com на сайт №1 и трафика test.site.com на сайт №2. Я не настраивал привязку по умолчанию для обработки трафика порта 80 с DNS-именем, отличным от этих 2. Итак, если вы перейдете к http: // [внутренний_ip_или_имя_машины] ни одна страница не загружается, потому что нет привязки для ее обработки.

Моим зондом был HTTP-зонд, настроенный на попадание /probe.html на порт 80. Проблема в том, что зонд, скорее всего, попадает http: // [внутренний_ip_или_имя_машины] /probe.html поскольку зонд ничего не знает о DNS-именах, которые я использую, и этот URL-адрес не имеет привязки для его обработки в IIS. Итак, зонд завершился неудачно, и предполагалось, что все мои виртуальные машины отключены. Это привело к ошибке 502.

Еще не уверен, что исправлю. Я либо добавлю привязку по умолчанию для порта 80 в IIS, которая указывает на рабочий веб-сайт, либо буду использовать зонд TCP.

Что меня действительно зациклило, так это то, что HTTP работал нормально, как я упоминал выше. Должно быть, у меня была привязка IIS по умолчанию при тестировании HTTP, а затем я удалил ее перед тестированием HTTPS. Теперь без действительного зонда и HTTP, и HTTPS не работают. С действующим датчиком работают оба.