是否可以有 2 个域指向同一个 IP 和/或 2 个 IP 解析到同一个域?

是否可以有 2 个域指向同一个 IP 和/或 2 个 IP 解析到同一个域?

我将尝试重写最初的问题,以使其更有意义。

我面临的问题是,我的公司网站托管在 Site Ground 上,但不幸的是,由于使用网站构建器,他们无法将其转移到该域文档根目录中的另一个附加域下。我想移动它的原因是我终于注册了与我公司名称匹配的域名。目前该网站是从一个临时域名访问的,我从未打算将其保留为我公司的域名。

为避免混淆,我的公司名称为 Systopian Solutions。我的上市公司品牌主页暂时(或者我认为是)在域名“systopian.com”的文档根目录下运行。我已完全计划好,一旦我获得了正确的公司域名“systopiansolutions.com”,我就可以将该域名添加为 Site Ground 中的另一个附加域,然后将网站的实际内容从一个附加域转移到另一个附加域,两者都在 Site Grounds Hosting 上。

然而,在我最初的想法中,该网站是可以转移的,在我打开这里的原始问题之前,即使转移了它,我还是遇到了一个小问题。

我还有由 Vultr 托管的 VPS 服务器。该服务器运行我公司面向公众的所有发票、账单和付款处理 Web 应用网站 (Invoice Ninja) 以及几个内部 Web 应用网站,这些网站允许我向客户提供不同的服务,

附注:(虽然我知道,你永远不应该在保存服务器上运行公共站点和内部站点,但我已经实施了许多步骤来确保没有人能够四处窥探。对于 1. 我已经为我的所有内部站点 URL 设置了别名,这样他们中没有一个会使用众所周知的 URL,如果他们知道这些站点在那里。2,Invoice Ninja 具有非常强大的安全性实现,除非 Invoice Ninja 允许该产品的功能,否则它不会允许任何人选择任何 fqdn/dir,但是,通过使用 /etc/phpmyadmin/apache2.conf,它的格式与 /etc/apache2/sites-available/site-name.conf 文件的配置方式完全不同。语法完全不同,但由于我无法解释的原因,如果我需要安装一个新站点,而不是使用 site-name.conf,这将导致 Invoice Ninja 拒绝访问任何 DocumentRoot 路径,我使用/etc/phpmyadmin/apache2.conf 并转到 phpMyAdmins 配置下的底部,然后我使用标记创建一个新的标签部分,并放置适当的路径、模式、路径以及新站点所需的所有其他配置,保存,然后重新启动 apache2。然而,我确实将安全性更进一步,因为我们在同一台服务器上混合了公共和内部站点,通过添加 .htpasswd 的使用并强制那些可能尝试访问他们可能发现的某些内部站点的人,他们需要在 .htpasswd 中配置的仅有的 2 个用户中的 1 个的凭据。如果他们以某种方式满足这些凭据,Web 应用程序站点本身都有访问这些站点所需的用户管理/登录凭据。虽然我并不幻想我所做的是坚不可摧的,但我可以向你保证,需要一个非常坚定的黑客,需要多年的经验才能侵入内部网站。有足够的层数,并且所选的密码非常强,具有最小字符长度和#、特殊字符、大写/小写字符的正确组合)

我遇到的一个小问题是,我希望托管我公司一些公共网站(例如 invoice ninja)的 VPS 服务器使用新的公司域名 systopiansoltions.com。如果将我公司的主页转移到我的 Site Ground Host 上的新附加域名,则意味着我必须使用不同的服务器,而这些服务器将以某种方式需要使用 systopiansoltions.com 域名。这就是我要问的,有没有办法让我的网站由 Site Ground 托管,DNS A 记录将具有不同的 IP 地址,A 记录将使 systopiansoltions.com 域名指向 Site Ground IP 37.60.253.172,同时以某种方式将我的 VPS 服务器站点的相同 DNS 服务器 A 记录指向我的 VPS 站点的 IP 地址 207.246.87.29。

最初的问题或多或少是,在没有任何类型的负载平衡器或路由器设置的情况下,是否有办法让相同的 FQDN 以某种方式指向 2 个不同的 IP 地址。

我有一些想法可能可以帮助我以最干净的方式做到这一点,那就是以某种方式设置重定向,尽管我不确定它将如何工作。

这就是我的问题和疑问的详细解释。

这个问题还有第二部分,是我错误地问了错误的信息,所以我也会问这个......

由于 VPS 主机包含内部站点和公共客户站点,我想知道是否有办法根据站点的功能为每个站点配置 2 个不同的域名...

示例:在 VPS 服务器上,/etc/hosts 具有以下条目(我不包括“localhost”条目)。这就是它到今天为止的配置方式。问题是,现在我注册了正确的公司域名,我希望能够将 systopian-web1.com 域名用于所有内部站点,同时以某种方式配置面向公共客户的 Invoice Ninja 站点以使用 systopiansoltions.com 域,但是,我没有第三个 IP 可以使用,坦率地说,我暂时缺少任何类型的运营预算,所以我无法负担添加第三个 IP 来让这个问题完全消失。

207.246.87.29 systopian-web1.com <--主 IP

45.76.165.28 unms.systopian-web1.com <-- 为此应用安装专门添加的辅助 IP,因为它需要专用 IP 地址。

所以,我的问题是,有没有办法将 1 个 IP 与 2 个不同的域名一起使用?或者有人知道其他方法来实现这一点吗?

我确实知道,在我的 apache2/sites-available/invoice-ninja.conf 中,我可以更改以下条目:ServerName systopiansolutions.com ServerAlias www.systopiansolutions.com 但是,我最初的想法是,为了指定这两个中的任何一个,需要在 /etc/hosts 中定义域名。难道不是这样吗?我不确定这些域名还能如何解析,因为我知道我不能有两个 A 记录,其中两个域名指向同一个 IP 地址,即让 stopiansolutions.com 解析为 207.246.87.29,然后让我在同一个 VPS 服务器 systopian-web1.com 上的另一个域名指向同一个 IP 207.246.87.29,除非我能够更新包含以下内容的 /etc/hosts

207.246.87.29 systopian-web1.com <-- 此域名将设置为我用来向客户提供功能和服务的内部网站,但公众无权访问这些网站

207.246.87.29 stopiansolutions.com <-- 此域名将为 Invoice Ninja 设置,因为这是一个面向公共客户的网站,所以我希望所有面向公共客户的网站都使用此域名。

45.76.165.28 unms.systopian-web1.com

只是提醒你,我之前问的问题仍然是一个悬而未决的问题,也就是说,由于我的上市公司的主页目前托管在 Site Ground 上,是否有办法在两个完全不同的服务器上使用相同的域名,每个服务器都有非常不同的 IP?** 我可能已经用另一种方式解决了这个问题,但问题仍然存在。

除此之外,我只有另一个选择,但我会在重写我自己的回复时解释这一点,如果我可以修改它,如果不能,我会添加另一个回复。

我有一个友好的请求,特别是当你们回复那些你们可以清楚地看到对使用这个网站非常陌生的人时。不要像你们中的一些人那样回复,说实话,这让我差点要离开这个网站,因为我觉得这些回复对那些新人、还不太熟悉这里情况的人完全缺乏宽容,而且我对你们中的一些人对如何发布问题等的期望相当无知,而是试着欢迎他们,给他们发私信,或者回复他们的帖子,并与他们分享后来分享给我的链接,因为我清楚地知道,绿党成员和他们写得不好的问题是绝对不能容忍的。这会给我很大的动力,让我花时间重写这个问题。有时人们太专注于自己,以至于他们忘记了一个小小的善意举动能产生多大的影响。

如果不是其他成员花时间尝试理解我的问题,并尽力为我提供考虑问题的不同方式,我不知道我是否会再次回来,这将是一个遗憾,因为像你们中的许多人一样,我有 20 年的技术支持、应用程序支持工程、系统管理、Web 服务和外部系统集成与迁移工程架构师经验。我很确定在某个时候,我将能够分享我多年的一些经验,以帮助那些在许多领域没有我技能水平的人,而且我喜欢帮助别人。所以,虽然我不是在重复老生常谈,但我只想请你们以一点宽容和接受的态度对待新成员,而不是放弃他们发表的第一篇帖子的声誉,试着为他们指明正确的方向(就像在事后再次做的那样),这样他们就可以学习如何撰写最有效的帖子,而不是让他们感到不受欢迎,并疏远会员。希望我的问题和我刚才的解释能够起到作用,并且希望下一个人不会像我一样感到被拒绝。

如果有人对我重写的问题有任何疑问,请随时提问。

干杯,

约翰

答案1

您可能混淆了两个概念:

  • 典范返回的完全限定域名hostname --fqdn。服务器使用它来了解如何调用自身,例如在HELO命令中SMTP
  • 您的网站的完全合格域名。

为了systopiansolutions.com在您的场所托管,您无需更改服务器的规范主机名,只需添加A指向您的服务器的 DNS 记录并配置 Apache 即可<VirtualHost>。 您不必更改任何内容/etc/hosts,因为 Apache2 服务器根据客户端的Host标头而不是传入接口的 IP 地址来选择要服务的站点(实际上,我必须猜测您要对文件做什么/etc/hosts,因为您只在问题的标题中提到它)。

MySQL 确实使用主机名来识别连接用户,但你可能使用本地主机反正。

编辑:经过您的澄清,这个问题的答案是:

最初的问题或多或少是,在没有任何类型的负载平衡器或路由器设置的情况下,是否有办法让相同的 FQDN 以某种方式指向 2 个不同的 IP 地址。

非常简单:您可以A为同一个域设置任意数量的 DNS 记录,前提是所有服务器都具有相同的内容。如果不是这样,您的用户将随机获得一个网页或另一个网页。

关于该/etc/hosts文件,25 年前它包含的信息与 NIC 中的信息相同,DNS您可以从 NIC 下载所有 Internet 主机的 IP 地址和域名。显然,它今天不再这样工作了。今天您只能使用它来覆盖DNS(在 UNIX-es 上,/etc/hosts在查询 DNS 之前会先咨询它):例如,通常(或历史上)每个主机只有其短名称,如webserver1/etc/hostname一行:

127.0.1.1 webserver1.example.com webserver1

它将覆盖A的记录webserver1.example.com,以便主机与自身之间的内部通信使用环回设备。

答案2

虽然我目前无法找到合适的答案,而且由于 Site Ground 无法将我公司的公共主页转移到他们添加的附加域 systopiansolutions.com,所以我真的没有关于将 1 个域名解析为 2 个不同 IP 地址的问题。因此,尽管我仍然很好奇如何做到这一点,或者如果具有这种专业水平的人遇到同样的问题,他们会如何处理。

但是,既然现在没有办法转移实际网站,我决定在 VPS 服务器上再创建一个 ner 网站,而该服务器已经有 Invoice Ninja(面向公共客户的网站),我可能会忘记尝试在多个 IP 的多个位置使用域名,而是更改 VPS 服务器的整个配置,删除 /etc/hosts 中对 systopian-web1.com 的引用,并将该域名的所有条目替换为 systopiansolutions.com。这样,所有网站(无论是否公开)都将指向我公司的正确域名。

所以我确实遵循了该计划,而且我不仅更新了 Site Ground 提供的 DNS。

另外,我修改了 /etc/hosts,注释掉了 systopian-web1.com 的条目,并添加了 systopiansolutions.com 的条目。

我检查了我的每个网站的 site-name.conf 以及 apache2.conf,并将所有 ServerName 和 ServerAlias 更改为使用 systopiansolutions.com。

然后,我重新启动了主机,以确保所有更改都已适当提交到各个区域。

通过这样做,我能够为所有网站配置 SSL 证书,并为所有使用 systopiansolutions.com 的网站安装证书。由于这是一台 VPS 服务器,我必须使用 certbot-auto 手动创建证书,如果我理解该 cli 程序的工作原理,它会根据 /etc/hosts 中的条目(而不是 DNS)验证您的域名。

一旦安装了 SSL,所有站点(公共站点和内部站点)都可以使用新域名和 https 正常运行。

但是,我注意到几个问题,虽然它们对我没什么影响,但希望有人能帮助我解决这些问题,因为当一切都运行得如此完美时,我讨厌弄乱任何东西。但是,据我所知,您的 /etc/hostname 中可能只有一个 FQDN,而我的有两个。同样,没有任何东西不起作用,也没有任何东西在抱怨。虽然我读到过,是的,您可以在此处列出多个 FQDN 条目,但我读了 Linux 手册页,上面说,不,只允许一个。由于我不知道哪些子系统实际上将此文件用于其条目,所以我不确定应该在此处配置哪个域名……

root@systopian-web1:/etc# cat /etc/hostname systopian-web1 <==== 这是本地主机名。 systopian-web1.com <==== 这是服务器的旧 FQDN。 如果可能的话,我愿意继续使用它作为所有内部 Web App Sites 的域名。

现在,在我的 /etc/hosts 中,情况略有不同,我交换了服务器的域名。但是,除非有人知道如何配置两个域名以在同一台主机上使用,否则我不知道还能做什么。由于服务器与我的本地网络没有任何关联,因此我无法使用 localhost 条目来配置内部站点以使用 LocalHost 和 systopian-web1.com。所以这也行不通。

root@systopian-web1:/etc# cat /etc/hosts

127.0.0.1    localhost
127.0.1.1    systopian-web1
//207.246.87.29 systopian-web1.com
207.246.87.29 systopiansolutions.com
45.76.165.28 unms.systopian-web1.com
//The following lines are desirable for IPv6 capable hosts
::1          localhost ip6-localhost ip6-loopback
ff02::1      ip6-allnodes
ff02::2      ip6-allrouters

另一个问题是,我希望将 127.0.1.1 主机名保留为 systopian-web1,以符合我的运营中心服务器命名约定。因此

/etc/hosts shows:
127.0.0.1    localhost
127.0.1.1    systopian-web1

因此,希望我已经更好地解释了我为解决 2 个 IP 地址指向单个域名的担忧所做的工作,因为我对如何处理在新写的问题帖子中提出的这些问题的第一个想法不再是问题,因为我将致力于在 VPS 服务器上创建我公司的主页,该服务器现在配置了 systopiansolutions.com 域名,因此不再需要(除了使用 Site Grounds 免费拖放式网站构建器轻松设置网站之外)将我公司的主页托管在 Site Ground 上。

相关内容