百度一下
关键词不能为空
%

今日天气

子比主题-一款优雅的主题
  • 安装wordpress及主题服务一次
  • 一次购买终身免费提供主题更新服务
  • 强大的人工服务,为你解决主题问题
  • 使用无忧,协助使用后台设置
  • 本站同款优化远程协助提升网站速度
559
特别特惠
699
立即购买

小黑屋

暂无小黑屋成员

域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置

文章最后更新时间:2024-11-22 16:19:41

图片[1]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记

链接重写与链接重定向的区别

链接重写 Rewrite

简单来说,链接重写就是用户在请求 https://a.com/p/a.txt 资源时,当请求经过某个中间机构时,中间机构将请求替换为另一个链接,如 https://b.top/img/a.txt,并将新链接下的资源返回给用户。但是用户对所有这些替换操作均不知情,用户浏览器中的地址不会改变。

图片[2]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记

比如阿里云 CDN、腾讯云 CDN 均提供了「重写回源 URL」的功能:

图片[3]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记

链接重写常用于隐藏源站的真实 URL 结构,保护源站信息;或者通过 URL 映射,让 CDN 节点回源到不同的源站目录。

链接重定向 Redirect

而链接重定向是指用户在请求 https://a.com/p/a.txt 资源时,中间服务结点告诉用户这个资源已经移到了 https://b.top/img/a.txt,用户的浏览器接收到这个请求后又发了一次 https://b.top/img/a.txt 请求。用户浏览器中的链接发生了变更。

比如阿里云 CDN 提供了「重写访问 URL」的功能:

图片[4]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记

重定向常用于将旧域名的 URL 迁移、映射到新域名;或者为移动端和 PC 端提供不同的 URL。

重定向 HTTP 返回代码一般为 3XX。301 为永久重定向;302、303、307 为临时重定向。

链接重定向的时机

DNS 解析链接地址的大致流程如下:

图片[5]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记

如果我们把上面 DNS 递归解析、迭代解析的过程拉平,并取出其中的主要结点,那么可以得到下图:

图片[6]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记

我们可以通过以下三种结点进行链接重定向。

在 NS 端重定向:

  • 阿里云/腾讯云云解析。添加一条「显性 URL 转发」的记录。但由于博主没能通过这种方式成功实现自己的目的。
  • Cloudflare 重定向规则。本文后半部分将讲述这个操作步骤。

在其他 DNS 服务中重定向:

  • 阿里云 CDN 提供的重写访问 URL 功能。支持 302、303、307 重定向。其他重定向代码可以另行申请。

在服务器上使用反向代理进行重定向:

  • Nginx。通过写一堆规则可实现一些简单的重定向。

使用 Cloudflare 的 DNS 服务

使用 Cloudflare 的 DNS 解析服务原因有以下几点:

  1. 免费
  2. 可抵御部分 CC 攻击、DDoS 攻击
  3. 可进行重定向
  4. 数据可视化
  5. 托管后屏蔽源站 IP
  6. 国内解析速度不算慢(暂时)

目前国内网站接入 CloudFlare 一般有两种方式,分别是 DNS 接入和 CNAME 接入。这里介绍 DNS 接入方式。

DNS 接入意思就是把域名管理解析服务商变更为 CloudFlare 来管理,如国内阿里云 DNS、腾讯云 DNS 等都是 DNS 域名解析服务商。域名管理解析服务商变更为 CloudFlare 并不意味着域名迁移到国外 CloudFlare 上,这只是域名解析服务管理权的变动,而域名所在“域”依旧是注册购买域名的平台上,续费、变更解析服务器管理商的操作依旧要在这些平台上进行操作。

本小节以从阿里云 DNS 迁移至 CloudFlare 为例介绍主要操作方法。

首先在 CloudFlare 添加站点后,记下名称服务器 NS:

图片[7]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记

回到阿里云,进入域名控制台:

图片[8]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记

在域名列表下点击自己的站点:

图片[9]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记

在 DNS 管理下,修改 DNS 服务器:

图片[10]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记

填入刚刚记下的 NS 服务器名称:

图片[11]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记

然后点击确定即可完成操作。接下请等待较长一段时间让配置生效起来,一般 30min 左右,最长不超过 24 小时。成功后 Cloudflare 会用邮件通知你。

Cloudflare 成功接管后,会顺带「继承」几条之前配置好的 DNS 记录。如果不全,可以使用双方的导入/导出功能。

阿里云云解析中选择导出文件类型为 zone。

图片[12]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记

然后在 Cloudflare 中上传文件即可。

图片[13]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记

根据需要我们可以选择合适的代理状态(详看官方文档了解更多信息:代理状态 |Cloudflare DNS 文档)。

图片[14]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记
网站出现「重定向次数过多」问题

如果我们访问自己的博客网站出现「重定向次数过多」的问题时,修改 Cloudflare 中 SSL 加密模式为【完全】即可。

图片[15]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记

参考:解决使用Cloudflare出现重定向次过多问题 – 【NUTSWP】

到这里,所有操作都结束了。返回阿里云云解析可以看到阿里云不再提供 DNS 解析服务:

图片[16]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记

使用 whois 工具查询注册域名的信息可以看到注册商还在阿里云:Whois.com – Domain Names & Identity for Everyone

图片[17]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记
腾讯云 CDN 加速域名中提示 CNAME 未配置正确

被 Cloudflare 代理的地址相当于套了个 CDN。对于已经在 Cloudflare 以外使用的 CDN 服务商,其 CNAME 记录可以不用被 Cloudflare 代理。即使 Cloudflare 没有代理,腾讯云 CDN 域名列表中部分加速域名会提示 CNAME 配置不正确,但实际上并没有什么问题,回源服务正常进行,这时我们可忽略该提示

检查 CNAME 是否真的正常可以使用一些工具获取域名访问的实质 IP,如使用工具 域名解析查询(A/Txt/Cname/Mx/Srv/AAAA记录) 或 F12 控制台查看请求。将查询结果 IP 放入腾讯云 CDN 的 IP 归属查询工具中:IP归属查询 – 内容分发网络 – 控制台,如果是腾讯云 CDN 结点那么 CNAME 的解析就没什么问题。

Cloudflare 中配置重定向规则

现重定向的需求如下:

名称原地址重定向后地址原因
HTTP 重定向到 HTTPShttp://a.comhttps://a.com网站支持 HTTPS,需全站跳转
WWW 重定向到根https://www.a.comhttps://a.com提高网站可达率
去掉 index.htmlhttps://a.com/xxx/index.htmlhttps://a.com/xxx/统一路径、维持数据统一性
补齐末尾斜杠https://a.com/xxxhttps://a.com/xxx/统一路径、维持数据统一性

关于第三点、第四点是困扰我许久的问题。因为博客里的文章链接路径都是统一的 /p/xxxxxx/ 但是搜索引擎在展示搜索结果时,文章链接总是带上 index.html 或少一个 /。虽然页面是正常的,但是这会导致网站的评论数据或统计数据分成了两份。以前在 Nginx 上折腾不出结果,搞得都是循环重定向。现在 Cloudflare 的「重定向规则」功能可以很方便的达到我们的要求。

Cloudflare 已经内置了 HTTP 重定向到 HTTPS、WWW 重定向到根的模板,我们直接部署使用即可。至此前两个需求很快得到了解决。

图片[18]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记

对于第三个重定向,我们可以自己定一个重定向规则:

图片[19]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记

使用通配符模式即可:

图片[20]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记

但目前来看原地址后的 hashtag 以及参数在重定向过程中会被省去。我们可以通过 HTTP状态检测工具- dute.org 检测重定向路径是否符合预期:

第四个重定向规则如下:

图片[21]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记

4 条规则概览:

图片[22]- 域名 DNS 服务托管至 Cloudflare 以及 301 重定向的配置- 如烟笔记

后记

搞网络配置时最恼人的两个东西:延迟与缓存。每一步操作都要等待一定时间后才能进行验证,因为在配置生效期间的测试结果会反复横跳(「冒险」时间长)。对于调试时期来说,缓存就如同雾气一样,拉远表象与实质之间的距离。但是如果你找到好的工具(各种在线站长工具)以及方法论(学会清缓存),整个过程就会顺畅多了。

另一个令人抓狂的点是 Cloudflare 调整重定向时,如果语法不正确它会把你之前填的内容全部清空!

本文参考

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容