开发 Leader 和一线开发的区别在于:普通一线开发很多时候都只接触业务编码,不需要关注除开发之外的其他事情。但是作为一个开发 Leader,不仅仅需要懂开发层面的东西,还需要懂得运维层面的东西。

最近产品同学就找到我:大佬,运营给了个需求,需要你搞定一下。事情是这样的:公司要接入一个第三方邮件供应商,其中有一个环节需要做子域名的 NS 记录解析。当时我一脸懵逼,什么是子域名的 NS 记录?到底要干嘛?虽然我可以直接把事情丢给运维人员,但是作为一个责任感爆棚的开发 LD,必须要把事情的整个流程搞清楚呀。

经过一番了解,我了解到域名解析有好几种类型,包括:A记录、CName记录、MX记录、NS记录等。作为开发来说,虽然不需要深入了解运维的知识,但是还是需要弄懂这些不同的解析类型的原理。简单地说,域名的解析类型就是在不同使用场景下的映射关系。

A记录

A记录,简单地说就是配置一条从域名到IP的映射关系。 我们都知道当我们输入域名的时候,其实浏览器会帮我们去 DNS 服务器上解析这个域名对应的 IP 地址,浏览器最终访问的其实是一个 IP 地址。而这里的 A 记录其实就是配置域名到 IP 的映射关系,让 DNS 服务器解析的时候能找到对应的 IP。

一般来说,要设置 A 记录只需要到你域名所属的服务商管理后台上进行设置即可。例如在阿里云上添加 A 记录的界面如下:

在上面的设置页面中,我选择了 A 记录类型。主机记录填写为:hello.csyimg.com,记录值为 192.168.1.1,TTL 值为 10 分钟。那么就表示我想为 hello.csyimg.com 这个域名创建一条映射到 192.168.1.1 这个 IP 的映射关系,其缓存有效时间为 10 分钟。

那么当用户在浏览器访问 hello.csyimg.com 这个域名的时候,DNS 服务器就会将请求转发到 192.168.1.1 这个 IP 上。这里的 TTL 值表示其在 DNS 服务器上缓存的时间,等时间到了那么其会清除掉这条记录,下次会再次去其对应的 DNS 服务器上去获取最新的记录值。

TTL 值存在意义在于:用户从浏览器到服务器会经过很多个 DNS 服务器,而 DNS 服务器会接收大量请求,为了提高解析效率会设置缓存。当你首次访问 hello.csyimg.com 时,如果本地的 DNS 服务器没有 hello.csyimg.com 的 A 记录,那么这次就会保存下来,等到下次访问的时候,直接就返回该记录,就不需要长途跋涉那么远去查询了。但是当我们要变更解析地址的时候,这时候就需要等10分钟才能生效了。

注:关于 DNS 解析的原理这里不深入介绍,有兴趣的话在公众号后台回复「DNS解析原理」可以查看我写的另一篇文章。

常见的主机记录值有下面几个,基本上涵括了我们日常使用的所有情况。

CNAME记录

CNAME 记录,即别名记录(Canonical Name),指的是设置一个域名的别称,即建立别名到域名的映射关系。

CNAME 记录通常用于把不同的域名转到同一个域名上,例如京东初期的域名为 360buy.com,后面更换成 jd.com,那么当用户访问 360buy.com 的时候就需要将自动为其跳转到 jd.com 域名。这时候就可以设置一个 CNAME 记录了。

在阿里云上添加 CNAME 记录也很简单,其设置的内容与设置 A 记录的类似,只不过记录值此时必须是一个域名,而不能是一个 IP。

MX记录

MX(Mail Exchanger)记录的作用是用于定位邮件服务器的地址。

例如一个用户给 user@abcdef.com 的用户发封邮件,此时该用户的所属的邮件系统会通过 DNS 服务器来查找 abcdef.com 这个域名的 MX 记录。如果存在,就去查找 MX 记录值对应的 A 记录,从而得到邮件服务器的IP地址,并将这封邮件发送到这台服务器上。可见,MX记录和A记录是分不开的。总的来说,MX记录是为了让对方找到你的邮件服务器。所以,如果想顺利收信,就必须为你的邮件服务器创建合法有效的MX记录。

在阿里云设置 MX 记录的页面如下所示,其中记录值也必须是一个域名。当用户要发邮件给 abc@csyimg.com 的时候,会通过 DNS 服务器查找 csyimg.com 的 MX 记录。此时会找到记录值为 mail.shuyi.me 的 MX 记录,之后会去查找 mail.shuyi.me 的 A 记录,从而找到 csyimg.com 这个邮件服务器的 IP 地址。

NS记录

NS 记录是指将子域名指向其他 DNS 服务器解析。有时候在进行技术合作的时候,需要将子域名托管给其他公司,这时候就需要为该子域名设置 NS 记录。

在阿里云设置 NS 记录的页面如下,其中记录值必须是一个域名,这个域名对应了一台 DNS 服务器。例如我下面的设置就将 doc.csyimg.com 这个子域名托管给了 ns.baidu.com 这个 DNS 服务器。当我将该子域名 doc.csyimg.com 托管给 ns.baidu.com 这台 DNS 服务器之后,我也可以在这台 DNS 服务器上设置 A 记录、MX 记录了。

总结

说到这里,我相信大家都已经比较清楚了。这里总结一下域名各解析类型的作用:

  • A 记录:设置域名到 IP 的映射
  • CNAME 记录:设置域名到域名的映射
  • MX 记录:设置邮件服务器的映射
  • NS 记录:设置子域名 DNS 服务器的映射

除了上面讲到的这几种域名解析类型,其实还有很多域名解析类型:

  • AAAA记录:将域名指向一个 IPV6 地址。
  • SRV记录:记录提供特定的服务的服务器。
  • TXT记录:文本长度限制512,通常用作SPF记录(反垃圾邮件)。很多时候也用来验证对域名的所有权。
  • CAA记录:CA证书颁发机构授权校验。
  • 显性URL:将域名重定向到另外一个地址。
  • 隐形URL:与显性URL类似,但是会隐藏真实目标地址。

关于域名解析类型,虽然对于开发人员来说平时用不到。但如果你当了 leader,需要与运维打交道了,那么这些基础知识可是必备的哦。觉得有用,可以点击「收藏」以备不时之需哦。

听了域名的解析类型,是不是觉得干巴巴的很不好记,貌似没有什么用?其实这解析类型可是大有用处,它与 DNS 的解析类型有千丝万缕的联系,下篇我将带你介绍 DNS 解析的原理。

A记录都不懂,怎么做开发Leader?的更多相关文章

  1. 我都xxx岁了,还能继续做开发吗?

    前言 今天纯文字,阅读时间10分钟左右 最近在看一本书<大型网站技术架构:核心原理与案例分析>,可以说是非常枯燥的一本书,在开头几章讲解了网站的发展,介绍了一些架构中的常用名词.虽然有点枯 ...

  2. .Net Core ORM选择之路,哪个才适合你 通用查询类封装之Mongodb篇 Snowflake(雪花算法)的JavaScript实现 【开发记录】如何在B/S项目中使用中国天气的实时天气功能 【开发记录】微信小游戏开发入门——俄罗斯方块

    .Net Core ORM选择之路,哪个才适合你   因为老板的一句话公司项目需要迁移到.Net Core ,但是以前同事用的ORM不支持.Net Core 开发过程也遇到了各种坑,插入条数多了也特别 ...

  3. 记录一次OCR程序开发的尝试

    记录一次OCR程序开发的尝试 最近工作中涉及到一部分文档和纸质文档的校验工作,就想把纸质文件拍下来,用文字来互相校验.想到之前调用有道智云接口做了文档翻译.看了下OCR文字识别的API接口,有道提供了 ...

  4. Atitit.技术管理者要不要自己做开发??

    Atitit.技术管理者要不要自己做开发?? 1. 为什么很多管理者不能自己亲自做了1 1.1. 沟通成本多了1 1.2. .组织分散. 1 1.3. 会议多 .协调多 1 1.4. 问题的根源在于我 ...

  5. 转行做开发的Wiki:找好方向

    案 我是一个从建筑行业转行过来的后端工程师,转行来写代码了.最近发现经常有同学和网上的朋友问我一些转行的问题,零零散散地回答莫不如写一篇文章,以后回答此类问题就方便多了. 我的专业是给排水,属于非常传 ...

  6. 从高处理解android与服务器交互(看懂了做开发就会非常的容易)

    今天帮一个朋友改一个bug 他可以算是初学者吧 .我给他看了看代码,从代码和跟他聊天能明显的发现他对客户端与服务器交互 基本 不是很了解.所以我花了更多时间去给他讲客户端与服务器的关系.我觉得从这个高 ...

  7. 关于使用Arduino做开发的理解

    转载自arduino中文社区 https://www.arduino.cn/thread-5414-1-1.html 见到很多人对Arduino的开发方法 .应用场景有误解,特别开个帖子说明下. 误解 ...

  8. PostgreSQL 优势,MySQL 数据库自身的特性并不十分丰富,触发器和存储过程的支持较弱,Greenplum、AWS 的 Redshift 等都是基于 PostgreSQL 开发的

    PostgreSQL 优势 2016-10-20 21:36 686人阅读 评论(0) 收藏 举报  分类: MYSQL数据库(5)  PostgreSQL 是一个自由的对象-关系数据库服务器(数据库 ...

  9. 为什么传统软件厂商都想转型做Saas?

    欢迎关注微信公众号:sap_gui (ERP咨询顾问之家) 早些年,我工作笔记用的最多的是微软的OneNote,这东西好用不说,不仅能够存在云端,也能存放在本地.可惜到了Office2019之后,On ...

随机推荐

  1. MapReduce数据流-概述

  2. 「HNOI2015」菜肴制作

    「HNOI2015」菜肴制作 这道题想到了其实还挺水的,一开始我直接用小根堆拓扑然后就爆0了,然后我又用十万个堆搜索,T30,还是xkl告诉我要倒着拓扑. 首先要建反图,对于入度为0的点,较小的点先输 ...

  3. SuperSocket内置的命令行协议

    内置的命令行协议(接受自定义,分隔符为“:”,“,”): 命令行协议定义了每个请求必须以回车换行结尾 "\r\n". 由于 SuperSocket 中内置的命令行协议用空格来分割请 ...

  4. phpstorm 中git 的使用

    phpstorm 是一款不可多得的IDE 环境,它既是一款强大的编辑器,还是一款调试器,同时还是一款git 可视化管理工具哟,phpers 值得拥有.今天介绍的是他不为人知的强大功能 —— git. ...

  5. 【原生JS】层叠轮播图

    又是轮播?没错,换个样式玩轮播. HTML: <!DOCTYPE html> <html lang="en"> <head> <meta ...

  6. 教你怎么让vi和vim显示行数

    首先我们来看看没有行号是多么难看. 2 再来看看有行号后的效果. 3 设置行号很简单. 我们要到命令模式下,输入set number :set number 按下回车 来看看效果 4 那么怎么关闭行号 ...

  7. 【codeforces 766D】Mahmoud and a Dictionary

    time limit per test4 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  8. 【js】Vue 2.5.1 源码学习 (八)响应式入口observe

    大体思路(七) 本节内容: deps 依赖收集的数组对象 => Dep 构造函数 /** ==> observe() * var ob * ==> if --isObject * = ...

  9. JS(JavaScript)的j进一步了解9(更新中···)

    1.动画 (1) Css样式提供了运动 过渡的属性transition  从一种情况到另一种情况叫过渡 Transition:attr  time  linear  delay: Attr 是变化的属 ...

  10. LuoguP3045牛券Cow Coupons

    LuoguP3045 [USACO12FEB]牛券Cow Coupons 果然我贪心能力还是太差了 ZR讲过的原题我回来对做法没有一丁点印象 有时候有这样一种题目 每个数有两种不同的价值 你可以选择价 ...