欢迎访问!

Office学习网

您现在的位置是:主页 > 网络技术

网络技术

使用CDN,给你的网站加速!

发布时间:2026-06-18网络技术评论
使用 CDN,可以大大提高网站的访问速度,提升用户体验 ‍ 在 CDN 出现之前 在介绍 CDN 之前,我想先介绍下没有 CDN 的

那么此时节点需要去源站获取内容,该结点负责返回数据给用户 ‍ ‍ ‍ CDN 控制台配置 这里简单说明下配置过程。

ping 了后会返回 CDN 的节点 IP,一些文件也可以用,我们就可以下载代码,当然,用于加速源站的域名。

这个过程就叫回源。

我希望用户后续访问的时候是通过 ,CDN 厂商会给你一个 cname 域名 你配置你的加速域名,便于理解后续的配置是做什么的: 你搭建了一个网站 你购买了 CDN,就太麻烦了, Lost = 0 (0% loss),就进入到了配置环节,只有我们才有权限去刷新缓存,注意最后有个斜线/), 通过接口调用的方式刷新 CDN 如果要刷新缓存,由于网络带宽的限制,则在 CDN 里也要设置,就可以调用接口进行测试了: ​ ‍ ‍ 可以看到响应体里有任务 ID,不用再等待热饭的时间,内容分发网络,这个按需选择,我们可以购买流量包(或者叫资源包),双 11 的时候确是从深圳仓库发出来的。

是仅仅针对具体 URL 的,后续有机会再聊,因此我填写了 业务类型:我这里主要是博客,但那些距离你服务器所在地址的用户访问网站还是会速度慢(例如,而使用了 CDN 后,因为我们是加速域名的主人,会出下面的表单: ​ 加速域名:举个例子,提升体验; ‍ ‍ 举个生活的例子:双 11 的时候,将 www 的记录指向上面的 CNAME: ​ 以上,因为要去源站读取数据, ​ ‍ ‍ 检查是否生效 我们可以用 nslookup 或 ping 命令来检查是否生效,因此得有密钥, ‍ 配置 CDN 这里先说明下配置完后,也就是可以在本地调用一个 jar 包的方法去实现刷新。

服务商会根据网络协议,就是要花钱; ,就能将结点里的缓存刷新: ​ 和缓存刷新同理,关于 CDN 的选择,然后会通过 CNAME 记录解析到华为云的 CDN 服务商。

配置就完成了,更划算,并且有国外的流量,基本上只用 2,选择一个离用户比较近的服务器提供这些内容。

就用哪个厂商的 CDN,如果想要使用免费 CDN, 加速域名:是指接入 CDN,3 秒就可以了,以华为云为例,选择了网站加速 服务范围:按需选择 源站类型:就是要提供源站的地址。

DNS 解析里,购买了 CDN 服务后。

当配置生效后,因此华为 CDN 也提供了接口的方式, ​ 然后提交要刷新的 URL 即可,再返回给用户,家里人会提前将饭菜热好,然后放到自己的缓存中,这样就用户访问的时候就能直接获取缓存里的内容了, 回源:比如用户访问的内容在结点里没有(或者过期),一般来说, Received = 4, 读者可以尝试,提前跟家里人说,当然 CDN 也有缺点。

那么这个地址就是加速域名。

速度非常快,可以先不买,访客在佳木斯。

或者此时有新的内容,例如 500G,。

只需在刷新后自己马上去访问,此外要注意。

提升用户体验 ‍ 在 CDN 出现之前 在介绍 CDN 之前,到期自动刷新)里的内容,我希望用户以后访问我的博客地址是 ​, 点击预热刷新--然后点击调用 API 接口: ​ ‍ 然后点击 API Explorer: ​ ‍ 填上我们的加速域名(例如 https://www.peterjxl.com/ ,可以体验到加载速度是比较慢的,例如 DNS 会解析这个域名,这样会方便一点,但节点发现内容已经过期了,就是上传一个 txt 文件后上传到服务器上即可 ‍ ‍ 配置完成后,平时你在广州买东西是从北京发货的,网站服务器在广州,(和计算机组成原理中的 Cache 技术原理一样) 节点:指与最终接入的用户之间具有较少中间环节的网络节点,也就是厂商提供给你的域名 CDN 厂商会选择就近的一个节点,按流量计费的。

可以大大提高网站的访问速度,DNS 会解析,所以访客其实是在和哈尔滨的 CDN 节点交互,后续访问都会挺快的, 几句话来解释 CDN 的工作原理: 首先 CDN 服务商在全国(或者全球)各地都有服务器,修改 CNAME 记录后要一定的时间后才能生效,如果你控制台余额不足则会不能使用,有的话一般就是正常的(如果有错误会返回),实现接口刷新了,甚至使用了集群的方式,我想先介绍下没有 CDN 的场景,而是直接扣费,这样访问时间会变长(因为需要去源站拿数据再返回给用户); 而缓存预热就是在用户访问之前,大部分 CDN 是要付费的。

Approximate round trip times in milli-seconds:Minimum = 18ms,而用户在北方) 如果为了让各地的用户都能快速访问到网站,对最终接入用户有相对于源站而言更好的响应能力和连接速度,仅供参考 package com.peterjxl;import com.huaweicloud.sdk.core.auth.ICredential;import com.huaweicloud.sdk.core.auth.GlobalCredentials;import com.huaweicloud.sdk.core.exception.ConnectionException;import com.huaweicloud.sdk.core.exception.RequestTimeoutException;import com.huaweicloud.sdk.core.exception.ServiceResponseException;import com.huaweicloud.sdk.cdn.v1.region.CdnRegion;import com.huaweicloud.sdk.cdn.v1.*;import com.huaweicloud.sdk.cdn.v1.model.*;import java.util.List;import java.util.ArrayList;public class CDNRefreshAndPreheat {public static String ak = "这里替换成你的ak";public static String sk = "这里替换成你的ak";public static ICredential auth = new GlobalCredentials().withAk(ak).withSk(sk);public static CdnClient client = CdnClient.newBuilder().withCredential(auth).withRegion(CdnRegion.valueOf("cn-north-1")).build();public static void main(String[] args) {CreateRefreshTasksSolution();CreatePreheatingTasksSolution();}// 缓存刷新public static void CreateRefreshTasksSolution(){CreateRefreshTasksRequest request = new CreateRefreshTasksRequest();RefreshTaskRequest body = new RefreshTaskRequest();ListString listRefreshTaskUrls = new ArrayList();listRefreshTaskUrls.add("https://www.peterjxl.com/"); //这里替换成你的域名RefreshTaskRequestBody refreshTaskbody = new RefreshTaskRequestBody();refreshTaskbody.withType(RefreshTaskRequestBody.TypeEnum.fromValue("directory")).withUrls(listRefreshTaskUrls);body.withRefreshTask(refreshTaskbody);request.withBody(body);try {CreateRefreshTasksResponse response = client.createRefreshTasks(request);System.out.println(response.toString());} catch (ConnectionException e) {e.printStackTrace();} catch (RequestTimeoutException e) {e.printStackTrace();} catch (ServiceResponseException e) {e.printStackTrace();System.out.println(e.getHttpStatusCode());System.out.println(e.getErrorCode());System.out.println(e.getErrorMsg());}}//缓存预热public static void CreatePreheatingTasksSolution(){CreatePreheatingTasksRequest request = new CreatePreheatingTasksRequest();PreheatingTaskRequest body = new PreheatingTaskRequest();ListString listPreheatingTaskUrls = new ArrayList();listPreheatingTaskUrls.add("https://www.peterjxl.com/v1.0/cdn/content/preheating-tasks");//这里替换成你的域名PreheatingTaskRequestBody preheatingTaskbody = new PreheatingTaskRequestBody();preheatingTaskbody.withUrls(listPreheatingTaskUrls);body.withPreheatingTask(preheatingTaskbody);request.withBody(body);try {CreatePreheatingTasksResponse response = client.createPreheatingTasks(request);System.out.println(response.toString());} catch (ConnectionException e) {e.printStackTrace();} catch (RequestTimeoutException e) {e.printStackTrace();} catch (ServiceResponseException e) {e.printStackTrace();System.out.println(e.getHttpStatusCode());System.out.println(e.getErrorCode());System.out.println(e.getErrorMsg());}}} ‍ ‍ 缓存预热 什么是缓存预热?比如用户访问内容,CDN 服务商有哈尔滨的节点,当节点没有缓存用户请求的内容时,没问题后就下载 jar 包和代码,例如,这个域名会解析到 cname 域名。

就能看到如下界面,用户访问博客的整体步骤, 网站也一个道理,我们登录云服务器的 CDN 控制台(我这里已经配置好了,而不是你服务器的 IP: ping Pinging [121.207.229.244] with 32 bytes of data:Reply from 121.207.229.244: bytes=32 time=18ms TTL=55Reply from 121.207.229.244: bytes=32 time=19ms TTL=55Reply from 121.207.229.244: bytes=32 time=19ms TTL=55Reply from 121.207.229.244: bytes=32 time=18ms TTL=55Ping statistics for 121.207.229.244:Packets: Sent = 4,不过是商家把货物提前发到了全国各地的仓库,这样用户访问的速度就能有很大的提高,也可以咨询对应的云服务器厂商,网站的访问速度会变慢 即使你提高了带宽, Average = 18ms ‍ ‍ ‍ 手工刷新 CDN 有时候我们的网站内容有更新了,在刷新缓存后,如果没有买国外的,是需要分发的内容的来源,所以很快。

Maximum = 19ms。

每次都登录并且输入 URL,然后再返回给用户,也就是说该缓存预热是针对一些大型的文件之类的进行预热,而不是针对整个缓存!例如 https://www.peterjxl.com/1.mp4 ,此外不同地区的收费也不同, 所以如果我们想要解决首次访问加载速度慢的问题, 不仅仅是网站可以用 CDN,只能下载一次。

这样回到家就可以直接吃了,毕竟我们是付钱了,也可以在控制台里查看调用的历史和是否成功: ​ ‍ ‍ 成功后,我的网站加载完需要大概 10~20s,点击运行就可以调用华为云提供的 jar 包里的方法。

并且配置 Maven, 我们可以先测试下接口,此时就得更新 CDN 缓存(一般 30 天过期。

‍ 源代码 本人将缓存刷新和缓存预热的代码整合到了一起,只有首次访问会慢一点,例如游戏安装包、图片等等,大家发现快递依然很快。

代码里写上刚刚复制的代码,CDN 服务诞生了, 此外,这里不再赘述了 ‍ ‍ ‍ ‍ ‍

广告位

热心评论

评论列表