У нас есть два приложения за нашим маршрутизатором, которые прослушивают порт 80/443. У маршрутизатора есть только один действительный IP-адрес. Первое приложение — это почтовый сервер, а второе — наш сервер управления исходным кодом.
В этом случае одним из решений является настройка каждого приложения на прослушивание отдельного порта. Это нежелательно для нас.
Итак, у нас есть один сервер Windows/IIS, который получает весь интернет-трафик и действует как своего рода прокси-сервер.
Для этого мы создали два сайта.
Мы создали первый сайт, как показано ниже:
- Связано с
mail.mydomain.com:80
иautodiscover.mydomain.com:443
. - HTTP-перенаправлениек
http://192.168.50.12
- Перенаправить
http
наhttps
И второй сайт, как показано ниже:
- Связанный с
scm.mydomain.com:80
- HTTP-перенаправлениек
http://192.168.50.85
Оба сайта отправляют код статуса HTTP-301 при перенаправлении.
Первый вариант хорошо работает как из внутренней сети, так и из внешней.
Второй работает из внутренней сети, но не из внешней. Причина в том, что когда мы просматриваем первый сайт http://mail.mydomain.com
, URL в адресной строке браузера не меняется, но при просмотре второго сайта URL меняется с http://scm.mydomain.com
на http://192.168.50.85
и, очевидно, не работает извне.
Все хосты (mail, autodiscover, scm) определены в нашем внешнем DNS как записи A, указывающие на единственный действительный IP-адрес, который у нас есть.
Почему так происходит, если оба сайта настроены одинаково?