У нас есть два приложения за нашим маршрутизатором, которые прослушивают порт 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
и, очевидно, не работает извне.
Все хосты (почта, автообнаружение, scm) определяются в нашем внешнем DNS как записи A, указывающие на единственный действительный IP-адрес, который у нас есть.
Учитывая, что оба сайта настроены одинаково, почему так происходит?