我知道无法配置 DNS,以便不同的子域指向相同的 IP,但使用不同的端口。即:
alfa.example.com 10.10.10.1 :550
beta.example.com 10.10.10.1 :560
因为 DNS 仅提供名称和地址 - 没有端口号。
我有几个子域名,但它们并非全部用于 Web 应用程序。例如,其中一些用于终端服务器,其他用于邮件服务器等。
因此,我需要不同的端口,并且我不想将端口固定在本地机器上。
也许解决方案是为这些地址设置代理服务器。它们可以代理请求或为可以将它们提供给客户端的端口设置服务器。
您能帮我找到最佳解决方案吗?
答案1
问题不太清楚,但有一些知识点可能对你有帮助:
- DNS 与端口无关。它返回 IP 地址。
- 与你说的不同,这是完全合法让两个名称/域/子域指向同一个 IP 地址。
- 它是完全有可能在同一 Web 服务器上托管多个网站(使用不同的名称)。这称为“多宿主”,它与服务器一起工作,识别客户端试图访问哪个站点,因为它在 Web 查询中。请参阅 Google 上的“apache 多宿主”了解其工作原理。
- 如果您需要使用不同名称访问其他服务(如邮件),只需使用不同的端口即可。很容易确定 smtp.toto.com 在端口 1001 上,而 smtp.titi.com 在端口 1002 上。让您感到困惑的是,这些服务使用未表达的默认端口。但是,当明确决定要使用的端口时,就不会再感到困惑了。
- 对于终端服务,嗯,它是同一台机器,所以谁会关心使用不同的端口来使用不同的名称?
PS 不确定 smtp(邮件)如何工作。也许也可以为其实现多宿主。
答案2
我想你想要的答案是“不”。
有多种方法可以重定向端口等,但最终,你的客户端软件必须发出请求A端口,无论是由用户输入还是写入代码或其他方式。无论哪种方式,这都是客户端问题,您无法在服务器端解决它。他们不能只向 IP 地址发出请求。
例如,当您在地址栏中输入 serverfault.com 时,Internet Explorer 实际上将转到 serverfault.com:80
这里没有什么魔法,它只是假设网站将使用端口 80,因为这是官方端口。开发人员本来可以轻易地强迫我们每次都做出选择,但他们选择了友善。
如果网站出于某种原因位于端口 81 上,则请求将失败,您必须手动输入 serverfault.com:81