我们的路由器后面有两个应用程序监听端口 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 中定义为指向我们拥有的唯一有效 IP 地址的 A 记录。
考虑到两个站点的配置方式完全相同,为什么会发生这种情况?