DNS 术语、组件和概念简介

2023-11-07

介绍


DNS(即域名系统)通常是学习如何配置网站和服务器的一个非常困难的部分。了解 DNS 的工作原理将帮助您诊断配置网站访问的问题,并让您更深入地了解幕后发生的事情。

在本指南中,我们将讨论一些基本的 DNS 概念,这些概念将帮助您开始使用 DNS 配置。完成本指南后,您应该准备好使用 DigitalOcean 设置您的域名 or 设置您自己的 DNS 服务器.

在我们开始设置您自己的服务器来解析您的域或在控制面板中设置我们的域之前,让我们先回顾一下有关所有这些实际工作原理的一些基本概念。

领域术语


我们应该从定义我们的术语开始。虽然其中一些主题在其他环境中很常见,但在谈论域名和 DNS 时使用的许多术语在其他计算领域中并不经常使用。

让我们从简单的开始:

域名系统


域名系统(通常称为“DNS”)是一种现有的网络系统,它允许我们将人类友好的名称解析为唯一的 IP 地址。

域名


域名是我们习惯于与互联网资源关联的人类友好名称。例如, ”google.com” 是一个域名。有人会说“google”部分就是域名,但我们一般可以将组合形式称为域名。

网址“google.com” 与 Google Inc. 拥有的服务器相关联。当我们键入“时,域名系统允许我们访问 Google 服务器google.com”进入我们的浏览器。

IP地址


IP 地址就是我们所说的网络可寻址位置。每个 IP 地址在其网络中必须是唯一的。当我们谈论网站时,这个网络就是整个互联网。

IPv4 是最常见的地址形式,被写为四组数字,每组最多三位数字,每组之间用点分隔。例如, ”111.222.111.222” 可以是有效的 IPv4 IP 地址。通过 DNS,我们将名称映射到该地址,这样您就不必为您希望在网络上访问的每个位置记住一组复杂的数字。

顶级域名


顶级域 (TLD) 是域中最通用的部分。顶级域是右侧最远的部分(用点分隔)。常见的顶级域名有“com”、“net”、“org”、“gov”、“edu”和“io”。

就域名而言,顶级域位于层次结构的顶部。 ICANN(互联网名称与数字地址分配机构)授予某些方对顶级域名的管理控制权。然后,这些各方通常可以通过域名注册商在 TLD 下分配域名。

Hosts


在域内,域所有者可以定义各个主机,这些主机是指通过域访问的单独计算机或服务。例如,大多数域名所有者都通过裸域访问他们的 Web 服务器(example.com)并且还通过“主机”定义“www”(www.example.com).

您可以在通用域下有其他主机定义。您可以通过“api”主机访问 API(api.example.com)或者您可以通过定义名为“ftp”或“files”的主机来进行 ftp 访问(ftp.example.com or files.example.com)。主机名可以是任意的,只要它们对于域是唯一的即可。

子域


与主机相关的主题是子域。

DNS 以层次结构运行。 TLD 下可以有许多域名。例如,“com”TLD 具有“google.com” and “ubuntu.com”在它下面。 “子域”是指属于较大域的任何域。在这种情况下, ”ubuntu.com”可以说是“com”的子域名。这通常被称为域,或者“ubuntu”部分被称为 SLD,这意味着二级域。

同样,每个域都可以控制位于其下的“子域”。这通常就是我们所说的子域。例如,您可以为您学校的历史系设置一个子域,地址为“www.history.school.edu”。 “历史”部分是一个子域。

主机名和子域之间的区别在于,主机定义计算机或资源,而子域扩展父域。它是一种细分域本身的方法。

无论是谈论子域还是主机,您都可以开始看到域的最左侧部分是最具体的。这就是 DNS 的工作原理:从左到右阅读时,从最具体到最不具体。

完全合格的域名


完全限定域名,通常称为 FQDN,就是我们所说的绝对域名。 DNS 系统中的域可以相互关联,因此可能有些模糊。 FQDN 是一个绝对名称,指定其相对于域名系统绝对根的位置。

这意味着它指定了包括 TLD 在内的每个父域。正确的 FQDN 以点结尾,表示 DNS 层次结构的根。 FQDN 的示例是“mail.google.com.”。有时,要求 FQDN 的软件不需要结尾点,但尾随点需要符合 ICANN 标准。

名称服务器


名称服务器是指定将域名转换为 IP 地址的计算机。这些服务器完成 DNS 系统中的大部分工作。由于域转换的总数对于任何一台服务器来说都太多,因此每台服务器可能会将请求重定向到其他名称服务器或委派其负责的子域子集的责任。

名称服务器可以是“权威的”,这意味着它们可以回答有关其控制下的域的查询。否则,它们可能指向其他服务器,或提供其他名称服务器数据的缓存副本。

区域文件


区域文件是一个简单的文本文件,其中包含域名和 IP 地址之间的映射。这就是当用户请求某个域名时,DNS 系统最终找到应该联系哪个 IP 地址的方式。

区域文件驻留在名称服务器中,通常定义特定域下的可用资源,或者可以获取该信息的位置。

Records


在区域文件内,保存记录。在最简单的形式中,记录基本上是资源和名称之间的单一映射。它们可以将域名映射到 IP 地址、定义域的名称服务器、定义域的邮件服务器等。

DNS 的工作原理


现在您已经熟悉了 DNS 涉及的一些术语,那么该系统实际上是如何工作的呢?

从高层次上看,该系统非常简单,但从细节上看却非常复杂。但总的来说,它是一个非常可靠的基础设施,对于我们今天所知的互联网的采用至关重要。

根服务器


正如我们上面所说,DNS 的核心是一个分层系统。该系统的顶部是所谓的“根服务器”。这些服务器由各个组织控制,并由 ICANN(互联网名称与数字地址分配机构)授予权力。

目前有13台根服务器在运行。然而,由于每分钟有大量的名称需要解析,因此每个服务器实际上都是镜像的。此设置的有趣之处在于单个根服务器的每个镜像共享相同的 IP 地址。当对某个根服务器发出请求时,请求将被路由到该根服务器最近的镜像。

这些根服务器的作用是什么?根服务器处理有关顶级域信息的请求。因此,如果请求的内容是较低级别的名称服务器无法解析的,则会向该域的根服务器进行查询。

根服务器实际上并不知道域托管在哪里。但是,他们将能够将请求者定向到处理特定请求的顶级域的名称服务器。

因此,如果请求“www.wikipedia.org如果向根服务器发出“”,根服务器将不会在其记录中找到结果。它将检查其区域文件中是否有与“www.wikipedia.org”。它不会找到一个。

相反,它将查找“org”TLD 的记录,并向请求实体提供负责“org”地址的名称服务器的地址。

顶级域名服务器


然后,请求者将新请求发送到负责该请求的顶级域的 IP 地址(由根服务器为其提供)。

因此,继续我们的示例,它将向负责了解“org”域的名称服务器发送请求,看看它是否知道“www.wikipedia.org“ 位于。

请求者将再次寻找“www.wikipedia.org”在其区域文件中。它不会在其文件中找到该记录。

然而,它会找到一条记录,列出负责“的名称服务器的IP地址”wikipedia.org”。这已经越来越接近我们想要的答案了。

域级名称服务器


此时,请求者就拥有了负责了解资源实际IP地址的名称服务器的IP地址。它向名称服务器发送一个新请求,再次询问是否可以解析“www.wikipedia.org”.

名称服务器检查其区域文件,发现它有一个与“wikipedia.org”。该文件内部有“www”主机的记录。这条记录告诉了该主机所在的IP地址。名称服务器将最终答案返回给请求者。

什么是解析名称服务器?


在上面的场景中,我们提到了“请求者”。在这种情况下,请求者是什么?

在几乎所有情况下,请求者都是我们所说的“解析名称服务器”。解析名称服务器是配置为向其他服务器询问问题的服务器。它基本上是用户的中介,它缓存以前的查询结果以提高速度,并知道根服务器的地址,以便能够“解析”对其不知道的事物发出的请求。

基本上,用户通常会在其计算机系统上配置一些解析名称服务器。解析名称服务器通常由 ISP 或其他组织提供。例如Google 提供解析 DNS 服务器您可以查询。这些可以在您的计算机中自动或手动配置。

当您在浏览器的地址栏中键入 URL 时,您的计算机首先查看是否可以在本地找到资源所在的位置。它检查计算机和其他一些位置上的“hosts”文件。然后,它将请求发送到解析名称服务器,并等待接收资源的 IP 地址。

然后,解析名称服务器检查其缓存中的答案。如果没有找到,它将执行上述步骤。

解析名称服务器基本上压缩了最终用户的请求过程。客户端只需知道询问解析名称服务器资源所在的位置,并确信他们会调查并返回最终答案。

区域文件


我们在上面的过程中提到了“区域文件”和“记录”的概念。

区域文件是名称服务器存储有关其所了解的域的信息的方式。名称服务器知道的每个域都存储在区域文件中。大多数到达普通名称服务器的请求都不是服务器为其提供区域文件的内容。

如果将其配置为处理递归查询(例如解析名称服务器),它将找出答案并返回。否则,它将告诉请求方下一步该去哪里。

名称服务器拥有的区域文件越多,它能够权威地回答的请求就越多。

区域文件描述了一个 DNS“区域”,它基本上是整个 DNS 命名系统的子集。它通常用于仅配置单个域。它可以包含许多记录,这些记录定义了相关域的资源所在位置。

该区的$ORIGIN是默认等于区域最高权限的参数。

因此,如果使用区域文件来配置“example.com.” 域,$ORIGIN将被设置为example.com..

这可以在区域文件的顶部配置,也可以在引用区域文件的 DNS 服务器的配置文件中定义。不管怎样,这个参数描述了该区域的权威性。

同样,$TTL配置其提供的信息的“生存时间”。它基本上是一个计时器。缓存名称服务器可以使用以前查询的结果来回答问题,直到 TTL 值用完。

记录类型


在区域文件中,我们可以有许多不同的记录类型。我们将在这里讨论一些更常见(或强制类型)的类型。

SOA记录


授权开始(SOA)记录是所有区域文件中的强制记录。它必须是文件中的第一个真实记录(尽管$ORIGIN or $TTL规格可能会出现在上面)。它也是最难理解的之一。

权限记录的开头看起来像这样:

domain.com.  IN SOA   ns1.domain.com. admin.domain.com. (
                          12083           ; serial number
                          3h              ; refresh interval
                          30m             ; retry interval
                          3w              ; expiry period
                          1h              ; negative TTL
                          )

让我们解释一下每个部分的用途:

  • domain.com.:这是区域的根。这指定区域文件用于domain.com.领域。通常,您会看到它被替换为@,这只是一个占位符,用于替换内容$ORIGIN我们在上面了解到的变量。

  • IN SOA:“IN”部分表示互联网(并且将出现在许多记录中)。 SOA 指示这是授权起始记录。

  • ns1.domain.com.:这定义了该域的主名称服务器。名称服务器可以是主服务器,也可以是辅助服务器,如果配置了动态 DNS,则一台服务器需要成为“主服务器”,即此处。如果您尚未配置动态 DNS,那么这只是您的主要名称服务器之一。

  • admin.domain.com.:这是该区域管理员的电子邮件地址。电子邮件地址中的“@”被替换为点。如果电子邮件地址的姓名部分通常有一个点,则在此部分中将其替换为“”(your.name@domain.com变成your\name.domain.com).

  • 12083:这是区域文件的序列号。每次编辑区域文件时,都必须增加此数字,区域文件才能正确传播。辅助服务器将检查主服务器的区域序列号是否大于其系统上的序列号。如果是,则请求新的区域文件,如果不是,则继续提供原始文件。

  • 3h:这是区域的刷新间隔。这是辅助服务器在轮询主服务器以查找区域文件更改之前等待的时间。

  • 30m:这是该区域的重试间隔。如果在刷新周期结束时辅助节点无法连接到主节点,它将等待一段时间并重试轮询主节点。

  • 3w: 这是有效期。如果辅助名称服务器在这段时间内无法联系主名称服务器,它将不再作为该区域的权威源返回响应。

  • 1h:如果在此文件中找不到请求的名称,名称服务器将缓存名称错误的时间量。

A 和 AAAA 记录


这两条记录都将主机映射到 IP 地址。 “A”记录用于将主机映射到 IPv4 IP 地址,而“AAAA”记录用于将主机映射到 IPv6 地址。

这些记录的一般格式是这样的:

host     IN      A       IPv4_address
host     IN      AAAA    IPv6_address

因此,由于我们的 SOA 记录调用了主服务器“ns1.domain.com”,我们必须将其映射到 IP 地址的地址,因为“ns1.domain.com” 位于“domain.com” 该文件正在定义的区域。

该记录可能如下所示:

ns1     IN  A       111.222.111.222

请注意,我们不必提供全名。我们可以只提供主机,不需要 FQDN,DNS 服务器将用 FQDN 填充其余部分$ORIGIN价值。然而,如果我们想要语义化,我们也可以轻松地使用整个 FQDN:

ns1.domain.com.     IN  A       111.222.111.222

在大多数情况下,您可以在此处将 Web 服务器定义为“www”:

www     IN  A       222.222.222.222

我们还应该告诉基域解析到哪里。我们可以这样做:

domain.com.     IN  A       222.222.222.222

我们本可以使用“@” 来代替引用基域:

@       IN  A       222.222.222.222

我们还可以选择解析此域下未明确定义到此服务器的任何内容。我们可以用“*” 通配符:

*       IN  A       222.222.222.222

所有这些都与 IPv6 地址的 AAAA 记录一样有效。

别名记录


CNAME 记录定义服务器规范名称的别名(由 A 或 AAAA 记录定义)。

例如,我们可以有一个定义“server1”主机的 A 名称记录,然后使用“www”作为该主机的别名:

server1     IN  A       111.111.111.111
www         IN  CNAME   server1

请注意,这些别名会带来一些性能损失,因为它们需要对服务器进行额外的查询。大多数时候,通过使用额外的 A 或 AAAA 记录可以获得相同的结果。

建议使用 CNAME 的一种情况是为当前区域之外的资源提供别名。

MX 记录


MX 记录用于定义用于域的邮件交换。这有助于电子邮件正确到达您的邮件服务器。

与许多其他记录类型不同,邮件记录通常不会将主机映射到某些内容,因为它们适用于整个区域。因此,它们通常看起来像这样:

        IN  MX  10   mail.domain.com.

注意开头没有主机名。

另请注意,其中有一个额外的数字。如果定义了多个邮件服务器,这是帮助计算机决定将邮件发送到哪个服务器的首选项编号。数字越小,优先级越高。

MX 记录通常应指向由 A 或 AAAA 记录定义的主机,而不是由 CNAME 定义的主机。

所以,假设我们有两个邮件服务器。必须有类似这样的记录:

        IN  MX  10  mail1.domain.com.
        IN  MX  50  mail2.domain.com.
mail1   IN  A       111.111.111.111
mail2   IN  A       222.222.222.222

在此示例中,“mail1”主机是首选电子邮件交换服务器。

我们也可以这样写:

        IN  MX  10  mail1
        IN  MX  50  mail2
mail1   IN  A       111.111.111.111
mail2   IN  A       222.222.222.222

国民服役记录


此记录类型定义用于此区域的名称服务器。

您可能想知道,“如果区域文件驻留在名称服务器上,为什么它需要引用自身?”。 DNS 如此成功的部分原因在于它的多级缓存。在区域文件内定义名称服务器的一个原因是区域文件实际上可能是从另一个名称服务器上的缓存副本提供服务的。需要在名称服务器本身上定义名称服务器还有其他原因,但我们不会在这里讨论。

与 MX 记录一样,这些是区域范围的参数,因此它们也不占用主机。一般来说,它们看起来像这样:

        IN  NS     ns1.domain.com.
        IN  NS     ns2.domain.com.

每个区域文件中应该至少定义两个名称服务器,以便在一台服务器出现问题时能够正常运行。如果只有一个名称服务器,大多数 DNS 服务器软件都会认为区域文件无效。

与往常一样,包括具有 A 或 AAAA 记录的主机的映射:

        IN  NS     ns1.domain.com.
        IN  NS     ns2.domain.com.
ns1     IN  A      111.222.111.111
ns2     IN  A      123.211.111.233

您还可以使用很多其他记录类型,但这些可能是您会遇到的最常见的类型。

PTR记录


PTR 记录用于定义与 IP 地址关联的名称。 PTR 记录是 A 或 AAAA 记录的逆记录。 PTR 记录的独特之处在于它们从.arparoot 并委托给 IP 地址的所有者。区域互联网注册管理机构 (RIR) 管理向组织和服务提供商的 IP 地址授权。区域互联网注册管理机构包括 APNIC、ARIN、RIPE NCC、LACNIC 和 AFRINIC。

以下是 PTR 记录的示例111.222.333.444看起来像:

444.333.222.111.in-addr.arpa.	33692	IN	PTR	host.example.com.

IPv6 地址的 PTR 记录示例显示了nibbleGoogle IPv6 DNS 服务器的反向格式2001:4860:4860::8888.

8.8.8.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.6.8.4.0.6.8.4.1.0.0.2.ip6.arpa. 86400IN PTR google-public-dns-a.google.com.

命令行工具dig-xflag 可用于查找 IP 地址的反向 DNS 名称。

这是 dig 命令的示例。这+short附加以减少反向 DNS 名称的输出。

  1. dig -x 8.8.4.4 +短

上面 dig 命令的输出将是 IP 地址的 PTR 记录中的域名:

google-public-dns-b.google.com.

Internet 上的服务器使用 PTR 记录将域名放入日志条目中,做出明智的垃圾邮件处理决策,并显示​​有关其他设备的易于阅读的详细信息。

最常用的电子邮件服务器将查找从中接收电子邮件的 IP 地址的 PTR 记录。如果源 IP 地址没有关联的 PTR 记录,则发送的电子邮件可能会被视为垃圾邮件并被拒绝。 PTR 中的 FQDN 是否与所发送电子邮件的域名匹配并不重要。重要的是存在有效的 PTR 记录以及相应且匹配的前向 A 记录。

通常,Internet 上的网络路由器都会获得与其物理位置相对应的 PTR 记录。例如,您可能会看到纽约市或芝加哥的路由器引用“NYC”或“CHI”。这在运行时很有帮助追踪路由或地铁并检查互联网流量的路径。

大多数提供专用服务器或 VPS 服务的提供商都会让客户能够为其 IP 地址设置 PTR 记录。当Droplet以域名命名时,DigitalOcean将自动分配任何Droplet的PTR记录。Droplet 名称是在创建过程中指定的,稍后可以使用 Droplet 控制面板的设置页面进行编辑。

Note:PTR 记录中的 FQDN 具有相应且匹配的前向 A 记录,这一点很重要。例子:111.222.333.444PTR 为server.example.com and server.example.com是一条 A 记录,指向111.222.333.444.

中国航空协会记录


CAA 记录用于指定允许哪些证书颁发机构 (CA) 为您的域颁发 SSL/TLS 证书。自 2017 年 9 月 8 日起,所有 CA 在颁发证书之前都必须检查这些记录。如果没有记录,任何 CA 都可以颁发证书。否则,只有指定的 CA 可以颁发证书。 CAA 记录可以应用于单个主机或整个域。

CAA 记录示例如下:

example.com.	IN	CAA	0 issue "letsencrypt.org"

主人,IN,和记录类型(CAA) 是常见的 DNS 字段。上述 CAA 特定信息是0 issue "letsencrypt.org"部分。它由三部分组成:标志(0)、标签(issue)和值("letsencrypt.org").

  • Flags是一个整数,指示 CA 应如何处理它不理解的标签。如果标志是0,该记录将被忽略。如果1,CA必须拒绝颁发证书。
  • Tags是表示 CAA 记录用途的字符串。目前他们可以issue授权 CA 为特定主机名创建证书,issuewild授权通配符证书,或iodef定义 CA 可以报告策略违规行为的 URL。
  • Values是与记录关联的字符串tag. For issue and issuewild这通常是您授予权限的 CA 的域。为了iodef这可能是联系表单的 URL,或者mailto:电子邮件反馈的链接。

您可以使用dig使用以下选项获取 CAA 记录:

  1. dig example.com type257

有关 CAA 记录的更多详细信息,您可以阅读RFC 6844,或者我们的教程如何使用 DigitalOcean DNS 创建和管理 CAA 记录

结论


您现在应该很好地掌握了 DNS 的工作原理。虽然一旦熟悉了策略,总体思路就相对容易掌握,但对于缺乏经验的管理员来说,付诸实践仍然困难。

如需概览,请查看如何在 DigitalOcean 控制面板中设置域.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DNS 术语、组件和概念简介 的相关文章

  • 没有 ID 字段或具有部分 NULL 复合字段的 Grails 域类

    根据对上一个问题的回答 此处回答 Grails 中的 SQL 数据库视图 https stackoverflow com questions 425294 sql database views in grails 427691 我尝试使用域
  • DNS 在 PHP 中不工作(但一般情况下可以)

    以下脚本 返回 DNS 记录列表 但最终在 file get contents 上失败 尽管 phpinfo 说 allow url fopen On On allow url include Off 出现以下错误 PHP 消息 PHP 警
  • 如何使用相同的 TXT 和 CNAME 为 Mailgun 配置 DNS?

    Mailgun 告诉我要设置一个TXT记录为mg mydomain com值为v spf1 plus a CNAME记录为email mg mydomain com有价值mailgun org 我这样做了 mailgun 验证了我的域名没有
  • 将多个域指向 Nginx 中的一台虚拟主机

    基本上 我想将每个域名重定向到一个虚拟主机 即文档 http nginx org en docs http server names html看起来很清楚 server listen 80 server name domain1 com w
  • 如何使用 Digital Ocean DNS 和 Nginx 设置全局负载平衡?

    UPDATE 请参阅下面我提供的答案 了解我最终在 AWS 上设置的解决方案 我目前正在尝试为 Digital Ocean 上的应用程序服务器实现全局负载平衡层的方法 但我还没有将一些内容放在一起 The Goal 通过将所有连接路由到 S
  • Apache虚拟主机无域名

    我有一个安装了apache2的VPS 我想通过IP地址访问一些没有域名的PHP项目 例如 http 162 243 93 216 projecta index php http 162 243 93 216 projectb index p
  • 端口 80 被我的 ISP 封锁,那么我的浏览器如何仍然工作?

    我知道当我请求 example com 时 我的浏览器实际上默认为 example com 80 但是 我的 ISP 阻止 80 端口侦听 那么如果端口 80 被阻止 我如何接收请求的响应 它不应该工作 不是吗 当您发出 HTTP 请求 实
  • DNS 服务器管理的域列表[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我们有一台运行 Ensim 的服务器 这是一个类似 Plesk 的旧工具 让我们的行为就像是一个网络主机一样 多年来 我们慢慢退出了托管业务 但我们的
  • 将非 www 版本的域名重定向到 Jetty 中的 www

    我无法将我的非 www 域版本重定向到 wwwMovedContextHandler 它没有要重定向到的主机 Both www example com and example com指向我的网络服务器IP 当有人试图打开时example c
  • 如何在通过代理 (Tor) 浏览时阻止 Java 预解析我的主机?

    我目前正在开发一个java应用程序 它使用在本地主机上运行的tor代理来获取显示请求者ip的脚本 我希望这项工作主要由 Tor 代理完成 以便它在最 自然 的状态下工作 我当前的代码看起来与此类似 SocketAddress TorProx
  • Docker Weave 和 WeaveDNS 问题

    我在本地计算机上运行的小型 weave 网络上设置 weaveDNS 时遇到问题 目前 问题表现为以下事实 当我运行 weave status 时 我在输出中没有看到 DNS 部分 如故障排除部分中所建议的那样 http docs weav
  • SSL 握手挂起

    我在论坛上看到过这个问题 但找不到任何合适的解决方案 此外 所有这些问题都缺少一些信息 所以我想把我学到的所有东西放在这里 连接点 我正在使用 SSL TLSopenfire具有2路身份验证 获得自签名通配符证书 这意味着我在客户端和服务器
  • 将 Google 域链接到 Amazon ec2 服务器

    我正在使用 Amazon EC2 实例来为 node js 应用程序提供服务 我最近通过以下方式购买了域名谷歌域名 https domains google com我想使用该域名来访问我的 node js 应用程序 Google Domai
  • 对在欧盟地区运行的 Heroku 应用程序强制使用 SSL

    我正在努力为 Heroku 欧盟地区 上运行的 Rails 应用程序强制实施 SSL 连接 我已成功将证书 包括 Heroku SSL 附加组件 添加到自定义域 如果我明确声明 https com 则效果完美 但我想将所有 http 请求重
  • 如何在 Windows 中拦截 DNS 查询

    我正在研究如何在 Windows 中拦截 DNS 查询 以一种不需要将 DLL 注入到每个进程中的方式 并且理想情况下能够根据发出查询的进程做出决策 因此简单的 DNS 代理服务器是不够的 从表面上看 DNS 查询所采用的路径如下所示 某些
  • 将多个子域映射到同一个 S3 存储桶

    有没有某种方法可以将多个 数千个 子域映射到一个 s3 存储桶 如果是这样 是否也可以将其映射到每个子域的存储桶中的特定路径 我希望 test1 example com 映射到 mybucket test1 test2 example co
  • 如何为digitalocean设置子域?

    我需要通过在 URL 中输入 sendy ambee app 来访问我的 Digitalocean 服务器 如果我输入 IP 地址 157 230 9 219 它就可以工作 但只要我输入 sendy ambee app 它就不起作用 Whe
  • Docker 中的 NGINX 缓存 IP 地址并提供错误的 Content-Type

    Summary 我想让NGINX 不是NGINX Plus 通过使用变量从DNS名称重新解析IP地址proxy pass 如建议的这篇 Nginx 官方文章 在变量中设置域名 部分 https www nginx com blog dns
  • 跨多个域的 ASP.NET 会话

    是否有合适的 NET 解决方案来在多个域上提供持久服务器会话 即 如果该网站的用户在 www site1 com 下登录 他们也将在 www site2 com 下登录 安全是我们正在开发的程序的一个问题 Thanks 它是否需要在会话中
  • IIS 如何识别请求的是哪个站点?

    如果我在一台服务器上托管多个站点 并且 dns 服务器将不同的域名解析到同一地址 这是服务器的名称 那么 IIS 如何知道最终请求的是哪个站点 因此 客户端输入我的 1 站点地址 gt myrandomsite mydomain com 然

随机推荐

  • 如何在 Debian 10 上安装 TeamViewer

    团队查看器是一款跨平台应用程序 可用于远程控制 桌面共享 在线会议以及计算机之间的文件传输 本教程介绍如何在 Debian 10 Buster 上安装 TeamViewer 先决条件 在继续本教程之前 请确保您以以下身份登录具有 sudo
  • 如何在 Python 中注释

    编写 Python 代码时 让代码简洁且易于理解始终是一个好习惯 组织代码 为变量和函数指定描述性名称是实现此目的的几种方法 提高代码可读性的另一种方法是使用注释 注释是用于解释代码的人类可读的解释或注释 例如 如果您编写了一个复杂的正则表
  • 如何在 Debian Linux 9 上安装 VirtualBox

    虚拟盒子是一款开源跨平台虚拟化软件 允许您同时运行多个来宾操作系统 虚拟机 本教程介绍如何在 Debian 9 上安装最新的 VirtualBox 6 0 先决条件 您需要以以下身份登录具有 sudo 访问权限的用户能够在 Debian 系
  • 如何在 Debian 10 上安装 TensorFlow

    TensorFlow是谷歌打造的一个开源机器学习平台 它可以在不同设备上的CPU或GPU上运行 TensorFlow 可以在 Python 虚拟环境中安装在系统范围内 作为Docker容器 或使用 Anaconda 在本教程中 我们将解释如
  • 如何在 Ubuntu 16.04 上将 Apache Web 根移动到新位置

    介绍 在 Ubuntu 上 默认情况下 Apache2 Web 服务器将其文档存储在 var www html 它通常与操作系统的其余部分一起位于根文件系统上 但有时 将文档根移动到另一个位置会很有帮助 例如单独安装的文件系统 例如 如果您
  • 如何在 Ubuntu 16.04 上使用 Apache 和 mod_wsgi 为 Django 应用程序提供服务

    介绍 Django 是一个功能强大的 Web 框架 可以帮助您快速启动 Python 应用程序或网站 Django 包含一个简化的开发服务器 用于在本地测试代码 但对于任何与生产稍微相关的事情 都需要更安全 更强大的 Web 服务器 在本指
  • Java线程等待、通知和notifyAll示例

    java中的Object类包含三个final方法 允许线程就资源的锁定状态进行通信 这些方法是wait notify and 通知全部 那么今天我们就来研究一下java程序中的wait notify和notifyAll Java中的等待 通
  • Systemd 要点:使用服务、单位和期刊

    介绍 近年来 Linux 发行版越来越多地从其他 init 系统过渡到systemd The systemd工具套件提供了快速灵活的初始化模型 用于从启动开始管理整个机器 在本指南中 我们将向您快速介绍您在管理应用程序时需要了解的最重要的命
  • Primefaces FileUpload 组件示例教程

    今天我们将研究 Primefaces FileUpload 组件 HTML 为您提供file输入标签来选择文件 但是我们需要更多信息才能将文件上传到服务器 Primefaces 为您提供现成的解决方案 消除了这种负担文件上传组件帮助您创建漂
  • 如何在 CentOS 7 上为 Nginx 创建自签名 SSL 证书

    介绍 TLS 或传输层安全 及其前身SSL代表安全套接字层 是用于将正常流量包装在受保护的加密包装器中的 Web 协议 使用此技术 服务器可以在服务器和客户端之间安全地发送流量 而不会出现消息被外部各方拦截的可能性 证书系统还帮助用户验证他
  • 如何在 Angular Material 中使用自定义 SVG 图标

    介绍 The 角材料库提供了一套采用 Material Design 风格的 Angular 组件 其中一个这样的组件是
  • 如何在 Ubuntu 12.04 上安装 MongoDB

    Status 已弃用 本文介绍不再受支持的 Ubuntu 版本 如果您当前运行的服务器运行 Ubuntu 12 04 我们强烈建议您升级或迁移到受支持的 Ubuntu 版本 升级到Ubuntu 14 04 从 Ubuntu 14 04 升级
  • React Router v6 抢先体验

    在撰写本文时 React Router v6 仍处于 alpha 阶段 但现在是时候开始使用它并探索未来的发展了 本指南将带您了解新功能 变化 如您所知 主要维护者分叉了反应路由器项目创建一个轻量级替代品 称为到达路由器2018年初 在此期
  • 在 Linux 中减小 PDF 文件大小

    在我们的 Linux 系统中 如果我们有一个很大的 PDF 文件 我们可能想减小它的大小 在本教程中 我们将了解在 Linux 中减小 PDF 大小或压缩 PDF 文件的不同方法 让我们找出一些命令行和 GUI 方法来处理这个问题 在 Li
  • 如何在 FreeBSD 10.1 上安装 Apache、MySQL 和 PHP (FAMP) 堆栈

    介绍 FAMP 堆栈类似于 Linux 上的 LAMP 堆栈 是一组开源软件 通常安装在一起以使 FreeBSD 服务器能够托管动态网站和 Web 应用程序 FAMP 是首字母缩略词 代表FfreeBSD 操作系统 A阿帕奇 网络服务器 M
  • 如何使用 JSON.parse() 和 JSON.stringify()

    介绍 The JSON object在所有现代浏览器中都可用 有两种有用的方法来处理 JSON 格式的内容 parse and stringify JSON parse JSON parse 获取 JSON 字符串并将其转换为 JavaSc
  • C++ 中的字符串连接:连接字符串的 4 种方法

    在本文中 我们将揭示在中执行字符串连接的各种方法C 语言 该方法在编程时可用于多种目的 但总的来说 这个概念与组合来自不同位置的两个字符串并将它们放在一起是相同的 C 中的字符串连接技术 在 C 中连接字符串时可以考虑以下技术 C 连接 运
  • 如何在 CentOS 7 上安装和使用 PostgreSQL

    介绍 关系数据库管理系统是许多网站和应用程序的关键组件 它们提供了一种结构化的方式来存储 组织和访问信息 PostgreSQLPostgres 或 Postgres 是一个关系数据库管理系统 提供 SQL 查询语言的实现 它是许多小型和大型
  • 如何在 VPS 上使用 Nginx 设置 FastCGI 缓存

    Prelude Nginx 包含一个 FastCGI 模块 该模块具有用于缓存 PHP 后端提供的动态内容的指令 设置此功能无需额外的页面缓存解决方案 例如反向代理 想想Varnish 或特定于应用程序的插件 还可以根据请求方法 URL c
  • DNS 术语、组件和概念简介

    介绍 DNS 即域名系统 通常是学习如何配置网站和服务器的一个非常困难的部分 了解 DNS 的工作原理将帮助您诊断配置网站访问的问题 并让您更深入地了解幕后发生的事情 在本指南中 我们将讨论一些基本的 DNS 概念 这些概念将帮助您开始使用