【问题标题】:DNS records for http web servers behind NAT with different external ports具有不同外部端口的 NAT 后面的 http Web 服务器的 DNS 记录
【发布时间】:2015-01-28 07:10:12
【问题描述】:

基本上是这样。 我有一个外部 IP。
我在内部网络上运行了几个 Web 服务器。
所有 Web 服务器都在 NAT 中配置不同的端口(80、81、82、...)
我的域的 DNS 配置在我的外部 IP 上。然后 NAT 将其转发到我的第一个 Web 服务器。

到目前为止,当我打开我的域时,比如说 example.com,它会打开我的第一个 Web 服务器页面。
当我打开 example.com:81 时,它会打开第二个服务器等。

我想要实现的是在不指定端口的情况下在不同子域上打开我的其他 Web 服务器的某种方式。

所以我想要类似的东西:
second.example.com -> example.com:81
第三个.example.com -> example.com:82

我正在为我的 TeamSpeak3 服务器使用 SRV 记录,因此我的 TS3 在端口 2222 上运行,并且 SRV 记录将我的 ts3.example.com 转换为 example.com:2222,它就像一个魅力。

可以通过 DNS 中的 SRV 记录配置这些子域吗?

如果不能。有没有其他办法?

谢谢

【问题讨论】:

    标签: http dns port nat srv


    【解决方案1】:

    由于您位于 NAT 后面,因此您所有的网络服务器都共享同一个端点。您将需要设置虚拟主机,以根据 HTTP 数据包中传递的域信息解析所有请求。托管这些虚拟主机的服务器然后将解析传入的数据包并根据域名解析将请求分发到适当的虚拟主机。

    Apache 通过实现 name-based virtual hosts 使这变得非常容易。

    IIS 有一个解决方案以及这个stack overflow answer points to.

    祝你好运!

    【讨论】:

    • nodejs 服务器有什么指示吗?第一个在 nodejs 上运行。
    • 试试 npm vhost 模块?看起来它会满足您的需求。 github.com/expressjs/vhost
    猜你喜欢
    • 2017-09-24
    • 2012-07-24
    • 1970-01-01
    • 2017-12-28
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    • 2022-12-14
    • 2011-05-22
    相关资源
    最近更新 更多