美文网首页
nginx泛域名解析实战

nginx泛域名解析实战

作者: Mracale | 来源:发表于2023-12-19 10:13 被阅读0次

    1. 域名概念

    1.1 二级域名

    二级域名是指顶级域名之下的域名, 见下面的例子:

    • .com 顶级域名
      • xxx.com 一级域名(你花钱申请的)
        • [www.xxx.com]二级域名
        • blog.xxx.com 二级域名
        • 依次类推…

    有几点需要注意下:

    1. [www.xxx.com是属于二级域名,不过一般我们把这个域名配置指向一级域名访问]
    2. [www.xxxxx.com/news这种形式一般称之为网站的子页面子目录等,并不是二级域名]
    1.2 域名泛解析

    我们的目的是实现访问二级域名后转发请求.首先要实现的是二级域名的配置,一般使用Nginx泛解析来处理. 泛解析即利用通配符*来做次级域名以实现所有的次级域名均指向同一IP地址。

    泛解析的用途有:

    1. 可以让域名支持无限的子域名(这也是泛域名解析最大的用途)。
    2. 防止用户错误输入导致的网站不能访问的问题。
    3. 可以让直接输入网址登陆网站的用户输入简洁的网址即可访问网站。
    1.3 域名类型
    image.png
    • 无论记录类型为啥, 主机记录都填写 aaa.xxx.com

    • 主机记录就是域名前缀,常见用法有:

      • www:解析后的域名为 www.xxx.com
      • @:直接解析主域名 xxx.com
      • *:泛解析,匹配其他所有域名 *.xxx.com
    • 记录类型的含义是什么?

      • A 记录:地址记录,用来指定域名的 IPv4 地址(例如8.8.8.8),如果需要将域名指向一个 IP 地址,就需要添加 A 记录。

      • CNAME 记录: 如果需要将域名指向另一个域名,再由另一个域名提供 IP 地址,就需要添加 CNAME 记录。(github page 就是用的这种)

      • NS 记录:域名服务器记录,如果需要把子域名交给其他 DNS 服务商解析,就需要添加 NS 记录。

      • AAAA 记录:用来指定主机名(或域名)对应的 IPv6 地址(例如 ff06:0:0:0:0:0:0:c3)记录。

      • MX 记录:如果需要设置邮箱,让邮箱能收到邮件,就需要添加 MX 记录。

      • TXT 记录:如果希望对域名进行标识和说明,可以使用 TXT 记录,绝大多数的 TXT 记录是用来做 SPF 记录(反垃圾邮件)。

      • SRV 记录:SRV 记录用来标识某台服务器使用了某个服务,常见于微软系统的目录管理。主机记录处格式为:服务的名字.协议的类型。例如: _sip._tcp

      • 隐、显性 URL 记录:将一个域名指向另外一个已经存在的站点,就需要添加 URL 记录。

    • 记录值如何填写?

      • A 记录:填写您服务器 IP,如果您不知道,请咨询您的空间商。

      • CNAME 记录:填写空间商给您提供的域名,例如:2.com

      • MX 记录:填写您邮件服务器的 IP 地址或企业邮箱给您提供的域名,如果您不知道,请咨询您的邮件服务提供商。

      • AAAA 记录:不常用,解析到 IPv6 的地址。

      • NS记录:不常用,系统默认添加的两个 NS 记录请不要修改。NS 向下授权,填写 DNS 域名,例如:ns3.dnsv3.com

      • TXT 记录:记录值并没有固定的格式,不过大部分情况下,TXT 记录是用来做 SPF 反垃圾邮件的。最典型的 SPF 格式的 TXT 记录例子为 “v=spf1 a mx ~all”,表示只有这个域名的 A 记录和 MX 记录中的 IP 地址有权限使用这个域名发送邮件。

      • SRV 记录:记录值格式为:优先级 权重 端口 主机名。例如:0 5 5060 sipserver.example.com

      • 隐、显性 URL 记录:记录值为必须为整的地址(必须带有协议、域名,可以包含端口号和资源定位符)。

    • TTL如何填写

      TTL即 Time To Live,缓存的生存时间。指地方 DNS 缓存您域名记录信息的时间,缓存失效后会再次到 DNSPod 获取记录值。我们默认的 600 秒是最常用的,不用修改。

      • 600(10分钟):建议正常情况下使用 600。

      • 60(1分钟):如果您经常修改 IP,修改记录一分钟即可生效。长期使用 60,解析速度会略受影响。

      • 3600(1 小时):如果您 IP 极少变动(一年几次),建议选择 3600,解析速度快。如果要修改 IP,提前一天改为 60,即可快速生效。

    2. 域名配置

    2.1 配置泛解析

    去域名提供商那里先配置一个泛解析地址,记录类型为A.域名指向一个IPv4地址.主机记录设置为*.记录值填写服务器公网Ip地址.

    配置好后稍微等待一下,然后访问这个域名.可以随意输入任何二级域名,访问到的都应该是顶级域名的内容.我这里访问结果总是Nginx的默认页面.


    image.png

    2.2 nginx server_name
    nginx http模块 server模块的 server_name指令主要用于配置基于名称的虚拟主机.匹配顺序不同结果不同.

    a. 精准的server_name配置,如:

    server_name xxx.com www.xxx.com;
    

    b. 以通配符*开始的字符串:

    server_name *.xxx.com;
    

    c. 以通配符*结束的字符串:

    server_name www.*;
    

    d. 配置正则表达式:

    server_name ~^(?.+)\.xxx\.com$;
    

    匹配顺序由上至下,只要有一项匹配以后就会停止搜索.使用时要注意这个顺序

    相关文章

      网友评论

          本文标题:nginx泛域名解析实战

          本文链接:https://www.haomeiwen.com/subject/msszgdtx.html