我刚刚买了一个Linode VPS主机计划,并按照本指南进行设置。 在“设置主机名”部分和“更新/ etc / hosts”部分中,它表示在这里设置的FQDN /主机名不需要与我将要托pipe的网站相关,这使我感到困惑。
我通过阅读大量文章做了自己的研究,但是我还不太清楚主机名/ FQDN在我的虚拟主机业务中扮演了什么angular色。 以下是我设法找出的一些基本事实,如果有任何错误,请随时纠正我:
xxx也可以称为“主机名”。 在我的本地机器上,通过将以下行添加到hosts文件
63.117.14.58 www.yahoo.com什么
每个networking请求“www.yahoo.com”或“任何”将被redirect到IP地址63.117.14.58(这是google.com的IP)。 这是一种阻止本地机器中不需要的网站的方法。
现在教程build议将此行添加到我的服务器中的“hosts”文件中
12.34.56.78(//my server's IP) myhostname.anything.com myhostname
它提到在上面的行中,域名可能是或者可能不是我要托pipe的域名,但是主机名应该是我在前面的步骤中已经设置的域名。 我的问题是:
1)基于事实#3,我认为这行redirect服务器上的任何请求myhostname.anything.com或myhostname我的IP地址,但这是什么意思? 用户计算机上的任何对myhostname.anything.com请求都不应该被转换为某个IP地址(不是我的IP地址)吗? 为什么我必须在我的服务器上redirect它? 我对HTTP请求如何工作的理解是,当用户input域名到浏览器中时,浏览器将联系域服务器,域服务器将根据域的DNSlogging将其引导到DNS服务器,然后DNS服务器将parsingIP地址,然后浏览器从该IP地址获取数据。 我的理解程序似乎与我的服务器上的“主机”文件无关。
2)答:关于FQDN,为什么主机名必须与我在我的服务器上设置的主机名相同,而域名不是?
B.如果我在这里设置不同的主机名,会发生什么?
C.在这里设置或不设置我的域名作为FQDN的目的是什么?
D.如果我只设置了FQDN而不是主机名,会发生什么? 喜欢这个
12.34.56.78(//my server's IP) myhostname.anything.com
很多问题,但我相信其中一些答案是重叠的,总的来说,我认为最大的问题是“设置主机名/编辑主机文件在我的虚拟主机业务中扮演什么angular色?
预先感谢您的时间。
人们回答这个问题会很难,因为它从一个简单的前提开始,然后从这里开始深入一个兔子洞。 让我们从头开始。
我不认为这需要很多解释,所以我会保持简短。 主机文件的目的是将主机定义为不依赖于DNS的IP地址映射。 对于服务器来说,最重要的是设备自己的名字,因为DNS服务器的问题很愚蠢,以至于你的设备无法通过名字引用自己。
只要我们只使用主机文件,我们根本不需要使用域。 DNS不涉及,那么谁在乎呢? 不幸的是,随着我们networking的发展,每个设备都独立地跟踪我们networking上所有设备的名称,变得不太可持续。 这导致我们使用DNS,并引入了一些新的后勤障碍。
主机名称是设备名称,如果您愿意,也可以是节点名称。 这是一个唯一标识的名称,对设备所有者来说是有意义的,并不一定有意义,甚至可能暴露给使用设备上的服务的人。 这就是Linode所说的名称不需要与您托pipe的服务有任何关系的意思。
例如,假设您拥有一家名为Contoso的公司,并且您运营一个名为example.com的网站。 该网站托pipe在六台机器上,名为dalek01到dalek06 。 所有的外部世界需要知道的是,如果他们将www.example.com插入他们的networking浏览器,他们可以得到他们想要的网站。 过于好奇的时间上议院不需要关心他们对www.example.com的请求是否由dalek03提供服务。
就其本身而言,主机名并不一定与DNS有任何关系。 这只是设备的名称,它甚至不一定有一个域后缀关联。 到目前为止,这很简单!
现在我们做一些棘手的事情。 讲故事的时间!
www.example.com ,因为它由几个不同的机器托pipe。 这是一件好事,我们有一个唯一标识名称的服务器有问题! dalek01到dalek06到某个DNS域中。 幸运的是我们拥有contoso.com (以我们公司的名字命名),与www.example.com完全分开,这可能是我们的客户之一。 corp.contoso.com的专用DNS域。 我们所有的桌面机都configuration了一个DNSsearch后缀corp.contoso.com 。 这意味着如果我们创build一个名为dalek01.corp.contoso.com的DNS条目,我们networking上的任何人都可以简单地通过连接到他们的SSH客户端的dalek01来访问那台机器。 方便! dalek01知道它被称为dalek01因为我们把它放在hosts文件中。 我们希望它知道,它也被称为dalek01.corp.contoso.com ,但我们不希望它依靠DNS来知道自己的名字。 那将是愚蠢的。 因此,我们在dalek01.corp.contoso.com的hosts文件中为dalek01.corp.contoso.com定义一个别名,以便知道它的全部名称。 www.example.com ,忘记了您有六台名为dalek01到dalek06服务器,事实上您的公司名为Contoso(您的客户dalek06 ),或为了方便员工您通过dalek06.corp.contoso.com为dalek01创build了DNSlogging。 希望这涵盖了所有的基地。