我有一个网站,mydomain.com。我希望能够通过该网站的子域 server.mydomain.com 访问内部服务器。我通过 Windows 2003 为该服务器设置了一个 DNS,这样我就可以在地址栏中输入 server.mydomain.com,它将解析为相应的 apache 服务器,但这仅在网络内部有效。
我的最终目标是建立一个https://server.mydomain.com它将路由到我的 apache 服务器,以便我可以访问该机器上运行的 svn 和 trac。
有什么建议可以实现这一点吗?
答案1
- 在路由器上配置 NAT(公共 IP 到服务器私有 IP)。同时设置适当的 ACL(例如,仅允许端口 80 等...)。
- 配置公共 DNS,将子域指向上一步使用的公共 IP。配置内部 DNS,使其指向私有 IP。
答案2
您是否通过路由器转发了端口,您是否将 DNS 设置为指向本地 IP?
这些都是您可能想要看的东西。
编辑
好吧,我认为(如果错误,请纠正我)您想从 LAN 外部访问此服务器。如果确实如此,您需要将本地 IP 更改为 WAN IP。如果错误,请再次纠正我。
答案3
您的域名是公开的吗?还是只是本地的(即 google.com 与 mycompany.local)
您有多少个公共地址?
- 如果 mydomain.com 和 server.mydomain.com 的值为 1,请在路由器上使用 PAT,并将 server.mydomain.com 设置为 mydomain.com 的 CNAME。但是,如果您已经在 mydomain.com 上有一个 Web 服务器,则无法在端口 80 上加入服务器。
- 如果超过 1 个,请将 server.mydomain.com 设置为 A 记录,并使用您想要使用的公共 IP 地址。
另一个解决方案是在您的 mydomain.com 网络服务器上设置某种反向代理,如果客户端尝试访问 server.mydomain.com,则该请求将被转发到 apache/svn 服务器。
此外,代理可以处理 ssl,并卸载网络服务器。
编辑 :
- 1个IP地址:
mydomain.com = 您的公共 IP 地址的 DNS A 记录 server.mydomain.com = mydomain.com 的 CNAME
在路由器上转发(PAT):
<public ip>:80/tcp => to the old webserver
<public ip>:8080/tcp => to the new webserver.
- 2个IP地址:
server.mydomain.com = 您的辅助 IP 地址的 DNS A 记录。
如果需要,请将路由器/防火墙上的端口 80/tcp 转发/打开到网络服务器。
- 代理方式:
http 代理(squid、apache……)将根据发出的域名重定向请求。
如果客户端请求 mydomain.com,代理将重定向到旧的 Web 服务器,即 80/tcp。如果客户端请求 server.mydomain.com,代理将重定向到新的 Web 服务器,即 80/tcp。
我认为这可以通过 Apache 上的虚拟主机来实现。
希望这有帮助!