【问题标题】:Different domain names assigned to the same IP address with different ports不同的域名分配给不同端口的相同IP地址
【发布时间】:2014-08-06 08:06:54
【问题描述】:

将不同的域名分配给服务器上的同一个 IP 地址,但通过端口号区分它们,通常会有什么问题吗?

这样做有什么不安全或被认为是不好的做法吗?

【问题讨论】:

  • 你打算用它们做什么?大概不是网络服务...
  • 多个域解析到同一个 IP 是很常见的。你真的不需要使用不同的端口。
  • @amenadiel 我说的是服务于两个不同网站的两个域名。
  • 我知道。您的网络服务器应该允许您指定 N 个虚拟主机,每个虚拟主机都侦听特定主机并拥有自己的文档根目录,因此它服务于不同的网站。有一些例外(例如 node.js)需要额外的配置或代理模块。

标签: dns webserver ip port


【解决方案1】:

将多个域与单个 IP 地址相关联非常好,并且只响应满足您想要强加的任何标准的某些端口上的查询也非常好。

它是否可行将因所使用的协议而异。例如,如果您使用 Web 服务执行此操作,其中(例如)http://example1.com:80(80 是默认 HTTP 端口)应该服务一件事,而 http://example2.com:81 应该服务其他事情,那么您将依赖在发出请求的客户端上,向您发送 HTTP Host: 标头(几乎所有人都会,它是一个非常重要的标头,并且在 HTTP 1.1 中是 必需),因此您可以拒绝example2.com 请求端口 80,example1.com 请求端口 81。(为什么你会想要这样做是一个问题;你可以只使用标准端口并改变你发送的内容返回基于Host 标头,这是非常标准的做法。)

但并非所有协议都会告诉您客户端查找哪个域以查找您的 IP 地址,因此使用其他协议可能不可行。


您对这个问题的评论以及下面对此答案的评论:

我说的是服务于两个不同网站的两个域名。

我想这样做的原因是因为我们已经用尽了我们的托管服务在我们的网络服务器上提供的 IP 地址,我们必须付费才能获得更多。

您不需要也不想为此使用不同的端口。您可以根据 Host 标头来执行此操作(见上文)。这是非常标准的做法。你怎么做取决于你的网络服务器软件。 Apache 称之为name-based virtual hosts,但我确信所有主要的网络服务器软件都可以。

【讨论】:

  • 我想这样做的原因是因为我们已经用尽了我们的托管服务在我们的网络服务器上提供的 IP 地址,我们必须付费才能获得更多。是的,我想尝试用两个不同的域名在同一个 IP 地址上托管两个不同的网站。我主要是一名程序员,服务器管理并不是我的强项。
  • @Hypersapien:如果您正在谈论提供 Web 内容,那么您根本不需要(或不想)通过端口来执行此操作。我在上面添加了注释。关于如何使用 Web 服务器软件执行此操作的细节将是 serverfault.comwebmasters.stackexchange.com(可能是前者)的问题。
  • 好的,谢谢。我去那里问问。作为记录,这是带有 IIS 7 的 Windows 2008 服务器。
  • @Hypersapien:这在 IIS7 中很容易,你应该可以在 MSDN 中找到信息this article 应该可以帮助你入门。
猜你喜欢
  • 2021-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-26
  • 2013-07-02
  • 2016-04-15
相关资源
最近更新 更多