单个 DynDNS 名称后面的多个子域和服务器?

Posted

技术标签:

【中文标题】单个 DynDNS 名称后面的多个子域和服务器?【英文标题】:Multiple subdomains and servers behind single DynDNS name? 【发布时间】:2014-03-10 11:10:06 【问题描述】:

我从我的 ISP 获得了一个动态 IP,因此我使用免费的 DynDNS 服务将流量重定向到我的服务器。我刚买了一个 Raspberry Pi,也想从外部访问它,最好使用另一个子域。我可以使用多个指向 DynDNS 域的 CNAME 记录,然后在服务器中放置一个 VHOSTS 文件,以根据调用的子域将流量引导到正确的服务器吗?

或者是调用服务器的 DynDNS 子域而不是我自己的子域,即独立于用户调用的子域向服务器显示相同的 id?我宁愿不为处理相同协议的不同服务器使用不同的端口。

今天: server.example.com -> CNAME -> server.dyndns.com -> 1.2.3.4 -> 主服务器

未来: server.example.com -> CNAME -> server.dyndns.com -> 1.2.3.4 -> 主服务器 rpi.example.com -> CNAME -> server.dyndns.com -> 1.2.3.4 -> 树莓派

【问题讨论】:

这当然是可能的。从技术角度来看。但是 DynDNS 不提供这样的二级域的使用。很可能您在那里有一个解析为 myserver.dyndns.org 之类的帐户。然后你可以使用 rpi.myserver.dyndns.org 作为虚拟主机。你不能做的是让这样的“子域”解析到不同的内部IP地址,因为这意味着路由器必须评估http中的host标头协议不起作用。 我不打算将二级子域与我的 DynDNS 地址一起使用,我想将多个一级子域定向到我的单个 IP,然后将它们拆分到不同的服务器。我的意图是让 VHOSTS 文件解析要使用的服务器,如果主机标头包含我自己的子域名,而不仅仅是 DynDNS 名称(这就是我的问题所在)。 好的,那没问题。但是在这种情况下的问题是什么? 我想知道 host 标头是否显示我的子域名而不是 DynDNS 名称。如果是这样,我可以使用 VHOSTS 将流量分开到不同的服务器。 完美,这正是我想听到的! 【参考方案1】:

是的,我认为您只需使用 CNAME 记录将所有子域指向同一个 dyndns 子域,然后使用 vhost 将它们全部区分。至于你的树莓派,你可能必须在你的 apache web 服务器上有一个虚拟主机,它就像一个代理服务器,将所有流量从主机名(子域)发送到 pi 的 ip。这是一个 vhost 代理配置的示例(在 Apache 的配置中,可能是 httpd.conf)

<VirtualHost *:80>
    ServerName rpi.example.com
    ProxyPass         /  http://localhost:8080/
    ProxyPassReverse  /  http://localhost:8080/
</VirtualHost>

将localhost和端口号替换为树莓派的ip和端口

【讨论】:

以上是关于单个 DynDNS 名称后面的多个子域和服务器?的主要内容,如果未能解决你的问题,请参考以下文章

自己购买的域名如何设置子域名,如何设置访问多个项目,万网

单个 Pyramid 实例上的多个域和子域

本地局域网内或路由器后面的动态IP更新(到DNS服务,如zoneedit或dyndns)

如何在单个 AWS EC2 实例上托管多个域和子域

单个主机文件条目可以包含多个域/子域吗?

当我根据 DynDNS url 名称而不是 IP 发出 axios 请求时,为啥会出现 CORS 错误?