
基于DNS解析分流实现CDN国内外加速与防御
前言
由于众所周知的原因,网站部署在境内服务器上,境外用户访问总会出一些奇奇怪怪的原因。再者,绝大多数对服务器的恶意攻击都来自境外IP,为了实现网站防护,同时提升国内外用户体验感,特以此文记录,以备后续参考。
#整体流程
1. 关于CDN
1.1 什么是CDN
内容分发网络(CDN)是一个互连服务器网络,可加快数据密集型应用程序的网页加载速度。CDN 可以表示内容分发网络或内容分配网络。当用户访问某个网站时,来自该网站服务器的数据必须通过互联网传输到用户的计算机。如果用户距离该服务器较远,则加载大文件(例如视频或网站图像)将需要很长时间。相反,如果网站内容存储在距离用户较近的 CDN 服务器上,就可以更快到达他们的计算机。
1.2 为什么CDN很重要
内容分发网络(CDN)的主要目的是减少延迟,或减少由网络设计造成的通信延迟。由于互联网的全球性和复杂性,网站(服务器)与其用户(客户端)之间的通信流量必须跨越很长的物理距离。通信也是双向的,从客户端向服务器发送请求,服务器返回响应。CDN 通过在客户端和网站服务器之间引入中间服务器来提高效率。这些 CDN 服务器将管理客户端与服务器之间的一些通信。它们可以降低传送到 Web 服务器的 Web 流量、减少带宽消耗,并改善应用程序的用户体验。
1.3 CDN的优势有哪些
内容分发网络(CDN)具有众多优势,可以提高网站性能并支持核心网络基础设施。
**加快页面加载速度 **
如果您的页面加载速度太慢,网站流量可能会减少。CDN 可以降低跳出率并增加用户在您网站上停留的时间。
降低带宽成本
带宽成本是一笔巨大的开支,因为每个传入的网站请求都会消耗网络带宽。通过缓存和其他优化,CDN 可以减少原始服务器必须提供的数据量,从而降低网站所有者的托管成本。
提高内容可用性
同一时间的访客过多或网络硬件故障可能会导致网站崩溃。CDN 服务可以处理更多 Web 流量并降低 Web 服务器的负载。此外,如果一台或多台 CDN 服务器离线,其他运营服务器可以替换它们,以确保服务不中断。
提高网站安全性
分布式拒绝服务(DDoS)攻击试图通过向网站发送大量虚假流量来关闭应用程序。CDN 可以通过在多个中间服务器之间分配负载来处理此类流量峰值,从而降低对原始服务器的影响。
1.4 常见CDN提供商
国内
阿里云、腾讯云、又拍云、七牛云等等
国外
CloudFlare(以下简称CF)等等
tips:
笔者用的又拍云(云联盟免费)+ CloudFlare(个人用户免费)
2. 前期准备
- 域名
域名需要准备两个,一个备案,一个不备案。
- 云服务器
搭建必须的运行环境并部署网站。
- 域名解析管理
负责域名的解析(笔者用的阿里万网DNS解析)
- CloudFlare账号
将未备案的域名添加到CF并解析。
3. 配置国内CDN
3.1 创建CDN服务
3.2 将域名解析到CDN
3.3 配置HTTPS
3.4 检测配置结果
4. 配置国外CDN
4.1 解析未备案域名到CF
4.2 配置DNS解析
4.3 添加自定义主机名
4.4 配置SSL相关选项
这一部分,需要根据自己的需求来选择,笔者这里开启的选项仅供大家参考。
5. 配置分流
5.1 配置DNS
tips:
笔者使用的阿里万网来解析的DNS记录
5.2 检测是否生效
笔者分别使用国内和国外服务器进行dns记录解析查看分流是否生效
1 | nslookup blog.inik.cc |
Tips:
yum -y install bind-utils (如果以上命令报错请先安装必要的工具「Centos下」)
国内:
国外:
从上面的记录可以看到,分流已经生效了,境内来源的IP会被调度到又拍云CDN上,境外来源IP会被调度到CloudFlare上。
写在最后
至此我们的网站就接入完成了,实现了国内外双加速。
- 标题: 基于DNS解析分流实现CDN国内外加速与防御
- 作者: Bachelor LEE
- 创建于 : 2024-04-02 17:07:00
- 更新于 : 2024-11-05 23:31:23
- 链接: https://blog.inik.cc/2024/04/02/a5caa24dd309.html
- 版权声明: 本文章采用 CC BY-NC 4.0 进行许可。