最近在做服务器迁移,发现子域名用了50多个都指向了同一个测试服务器的IP。这时候在思考“每次迁移都得修改50多处,是否太麻烦?能否有个变量替代,然后这50多个域名指向这个变量,迁移的时候只修改一次这个变量即可?”
按照这个思路,想到了cname有这个作用。继续顺着这个思路思考,开始用我司官网做了测试。但是又有个问题就是http协议的虚拟主机,是cname前的域名?还是cname后的域名?顺便想起了另外一个问题:“域名托管给CDN也是要cname,这块的原理再梳理一下。”
A记录:先用www.techvc.net指向新搭建服务器的IP,也就是A记录。用www.techvc.net访问正常。用www.techvc.cn,无法访问。因为服务器没有配置http虚拟主机。配置如下:
listen 80 default_server;
listen 443 ssl http2 default_server;
server_name www.techvc.net techvc.net;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/www.techvc.net;cname:然后配置www.techvc.cn–>cname–>www.techvc.net,浏览器F12,HOST属性用的是www.techvc.cn,而不是www.techvc.net。说明这个是dns服务器的行为,不会干扰http请求。也就是说,服务器得配置www.techvc.cn虚拟主机才可以。重点看黑色部分,配置如下:
listen 80 default_server;
listen 443 ssl http2 default_server;
server_name www.techvc.net techvc.net www.techvc.cn techvc.cn;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/www.techvc.net;最后,缓存是重点。在做DNS调试的时候一定要有耐心。如果是通过网站调试,那么网站缓存及浏览器的DNS缓存、DNS服务器解析缓存、服务端应用缓存都是个问题。这一块要慢慢等待,或者想办法失效。尤其是浏览器中https自动向http重定向的缓存,需要浏览器ctrl + shift + del删除才可以。
另外附上:DNS各记录类型使用目的
| 记录类型 | 使用目的 |
| A 记录 | 将域名指向一个 IP 地址(外网地址)。 |
| CNAME 记录 | 将域名指向另一个域名,再由另一个域名提供 IP 地址(外网地址)。 |
| MX 记录 | 设置邮箱,让邮箱能收到邮件。 |
| NS 记录 | 将子域名交给其他 DNS 服务商解析。 |
| AAAA 记录 | 将域名指向一个 IPv6 地址。 |
| SRV 记录 | 用来标识某台服务器使用了某个服务,常见于微软系统的目录管理。 |
| TXT 记录 | 对域名进行标识和说明,绝大多数的 TXT 记录是用来做 SPF 记录(反垃圾邮件)。 |
| 隐、显性 URL 记录 | 将一个域名指向另外一个已经存在的站点。 |
Views: 131

发表回复