CDN、DNS
CDN 内容分发网络、DNS域名解析到IP
DNS (域名解析)
什么是DNS?
- DNS 服务商(如阿里云、Cloudflare、GoDaddy 等)添加了一条将域名指向某个 IP 地址的记录(比如 A 记录或 AAAA 记录),并且该记录已生效,那么就可以认为“DNS 解析配置成功”了
域名
- 域名(如 api.example.com)是你写在代码里的地址,方便人类记忆
IP
- IP 地址(如 123.45.67.89)是网络真正用来通信的标识
从域名到 IP:解析 API 调用中的白名单机制
为什么会有这个问题,在我配置微信小程序,让我添加对应ip白名单
- 当你发起请求
<?php
$url = "https://api.example.com/v1/redpacket";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 返回响应体而不是直接输出
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // 验证 SSL 证书(生产环境建议开启)
curl_setopt($ch, CURLOPT_TIMEOUT, 30); // 设置超时时间(秒)
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'cURL Error: ' . curl_error($ch);
} else {
echo $response; // 输出 API 返回的内容
}
curl_close($ch);
?>重要
浏览器/程序会先将 api.example.com 解析成一个 IP 地址(DNS 解析),然后向这个 IP 发送请求,对应第三方地址,接收到的是你的ip请求
总结
提示
- 配置 API 白名单时,关注的是你服务器的出口公网 IP,不是你请求的域名
CDN (分发网络)
什么是CDN
- 是一种分布式服务器系统,旨在将网站、应用程序或其他在线内容更快速、更可靠地传递给全球用户。它通过将内容缓存到地理位置上靠近用户的边缘服务器(Edge Server)上,从而减少延迟、提高加载速度,并减轻源站服务器的负载
CDN的工作原理
- 内容缓存
当用户首次请求某个资源(如图片、视频、JS/CSS 文件等),CDN 节点会从源站获取该内容并缓存下来
- 就近访问
后续其他用户请求相同内容时,CDN 会根据用户的地理位置,将其引导至最近或最优的边缘节点提供服务
- 动态路由与负载均衡
CDN 使用智能 DNS 和负载均衡技术,自动选择响应最快、负载最低的节点
- 回源机制
如果边缘节点没有所需内容(缓存未命中),CDN 会向源站请求内容并缓存,再返回给用户
为什么使用CDN
- 提升访问速度和用户体验
- 降低源站负载和带宽成本
- 增强可用性和容错能力
- 支持全球业务扩展
- 安全增强 (隐藏源站 IP,防止直接攻击)
- 支持动态内容加速
提示
- 将网站、应用程序或其他在线内容更快速、更可靠地传递给全球用户。它通过将内容缓存到地理位置上靠近用户的边缘服务器(Edge Server)上,从而减少延迟、提高加载速度,并减轻源站服务器的负载
总结
用户 → 输入 www.example.com
↓
【DNS 查询】
→ 浏览器问 DNS:“www.example.com 的 IP 是多少?”
→ DNS 返回一个 IP(比如 104.16.123.45)
↓
【这个 IP 实际是谁?】
→ 它不是源站服务器,而是 **CDN 节点**(比如 Cloudflare 在上海的服务器)
↓
【CDN 节点处理请求】
→ 如果有缓存 → 直接返回内容(快!)
→ 如果没缓存 → 回源到你的真实服务器(源站)拉取内容,再缓存并返回
↓
用户看到网页版权所有
版权归属:念宇
