基于DNS解析分流实现CDN国内外加速与防御

基于DNS解析分流实现CDN国内外加速与防御

Bachelor LEE Lv2

前言

由于众所周知的原因,网站部署在境内服务器上,境外用户访问总会出一些奇奇怪怪的原因。再者,绝大多数对服务器的恶意攻击都来自境外IP,为了实现网站防护,同时提升国内外用户体验感,特以此文记录,以备后续参考。

#整体流程

Snipaste_2024-04-02_16-58-39.png

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服务

Snipaste_2024-04-02_14-52-41.png

3.2 将域名解析到CDN

Snipaste_2024-04-02_14-57-21.png

3.3 配置HTTPS

Snipaste_2024-04-02_15-00-52.png

3.4 检测配置结果

Snipaste_2024-04-02_15-04-40.png

4. 配置国外CDN

4.1 解析未备案域名到CF

Snipaste_2024-04-02_15-10-12.png

4.2 配置DNS解析

Snipaste_2024-04-02_15-16-03.png

4.3 添加自定义主机名

Snipaste_2024-04-02_15-24-08.png

Snipaste_2024-04-02_15-26-10.png

Snipaste_2024-04-02_15-30-32.png

4.4 配置SSL相关选项

这一部分,需要根据自己的需求来选择,笔者这里开启的选项仅供大家参考。

Snipaste_2024-04-02_15-37-28.png

5. 配置分流

5.1 配置DNS

tips:

笔者使用的阿里万网来解析的DNS记录

Snipaste_2024-04-02_16-30-38.png

5.2 检测是否生效

笔者分别使用国内和国外服务器进行dns记录解析查看分流是否生效

1
nslookup blog.inik.cc

Tips:

yum -y install bind-utils (如果以上命令报错请先安装必要的工具「Centos下」)

国内:

Snipaste_2024-04-02_16-39-41.png

国外:

Snipaste_2024-04-02_16-40-16.png

从上面的记录可以看到,分流已经生效了,境内来源的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 进行许可。