怎么给服务器加cdn

怎么给服务器加cdn,第1张

在现有的服务器的基础上,域名解析使用带有CDN的IP,在服务器上的子域名以及部署使用的域名都换成带有CDN的IP,所有用户的访问流量将会通过CDN节点的形式进行访问转发。通过不使用真实IP的形式,将源站隐藏起来。

cdn就是将多个建设的网络节点一起组成一层互联网络,来对你的web服务器进行内容分发缓存,为您进行加速服务,而高防cdn就是在节点上增加防御功能。使您的网站不怕攻击。

对于用户而言,当他访问您的网站的时候,cdn内部的智能分配机制就会分配离他最近的节点为他进行服务,节点就会像您的web服务器一样来响应用户的请求,因为距离较近,所以这个时候响应时间和速度相比于您的web服务器会有明显的提升。

给自己的服务器套cdn并没有想象中那么难,可能有些人会觉得肯定需要操作代码命令啥的,但是为了受众广大用户群体,cdn服务厂商都会让这个过程变得更加的简单好上手。

给服务器加cdn的注意点:

当你选择好了cdn相应的套餐之后,您只需要将您的网站域名解析到运营商提供的cname记录值即可,其他的地方不需要做任何修改。

然后再根据您自己的爱好需要,在您的控制台设置一下你想要的流量访问规则等参数。就大功告成了,以后您的网站就多了一个金钟罩来抵御各种网络流量攻击。

因为react项目多为SPA项目,用于生产部署时,存在首屏响应过慢导致用户难以忍受等待时间从而流失问题。一般导致首页响应过慢的原因有很多,网络问题是其中之一。本文记录通过七牛云免费CDN部署react项目。

1.create-react-app创建react项目,并启动项目。

2.项目打包。

此时如果只是普通部署,不要求体验效果时,把build文件下的文件拷贝到静态服务器即可。

接下来考虑如何静态文件CDN部署。

3.修改webpack文件,打包文件的引用路径省车过为CDN路径。

     1. config文件夹下paths.js(修改pathname为cnd的域名)

    2. config文件夹下webpack.config.js 修改output文件名,使用绝对路径。

修改后重新打包,发现index.html中引入css,js的路径皆改成cdn路径。

附加: 上传打包文件至七牛云CDN。(upload.js)

一、什么是CDN?

CDN的全称是Content Delivery Network,翻译成中文就是内容分发网络。CDN依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取内容,降低网络延迟,提高访问速度。简单来讲,CDN是用来进行加速的,它可以让用户更快获得所需的数据。

举个例子,某个网站的服务器在北京,如果深圳的用户想要获取服务器上的数据,就需要跨越很远的距离,由于传输速度和路由转发等因素,就会导致访问速度非常缓慢。但如果我们在深圳建立一个CDN服务器,上面缓存了一些服务器数据,那么深圳用户只需要访问这个CND的服务器就能获取相关的内容,这样速度就提升了很多。

二、什么是DNS?

要了解cdn就先要了解一下dns。当我们在浏览器中输入一个域名时,就能访问对应的站点。但实际的情况远比我们看到的复杂,因为计算机不能直接识别域名,所以必须依靠某种环节将域名翻译成IP地址才能,这个环节就是DNS。

当我们向DNS服务器发起解析域名的请求时,DNS服务器首先会查询自己的缓存中有没有该域名,如果缓存中存在该域名,则可以直接返回IP地址。如果缓存中没有,服务器则会以递归的方式层层访问。

例如,我们要访问www.baidu.com,首先我们会先向全球13个根服务器发起请求,询问com域名的地址,然后再向负责com域名的名称服务器发送请求,找到baidu.com,这样层层递归,最终找到我们需要的IP地址。

三、CDN和DNS的区别

上面我们提到CDN实际上提供就是一个就近访问的功能,但现在有一个问题是,我们如何直到用户所在的位置并为其分配最佳的CDN节点呢。这就需要用DNS服务进行定位了。

当我们使用DNS服务时,可以根据用户使用的递归服务器进行定位。但你给我们看到用户使用的是深圳的递归服务器,那么就认为该用户来自深圳,然后调度服务器就让该客户去访问深圳的CDN服务器。

但这种调度方式可能存在一个问题,就是用户的实际IP与递归服务器并不一致。比如我是北京联通的用户却使用了深圳电信的递归服务器,那么调度服务器为我分配深圳电信的CDN服务器,就会产生错误的调度。

四、HTTP调度

针对上面的问题,我们还有另一种调度方式——http调度。

当用户访问服务器时,先分析用户的IP地址,然后服务器给用户返回一个302重定向,将离用户最近的服务器存在缓存中,用户再去请求时就能得到最佳的CDN节点。

这种方式定位更加准确,但缺点是需要增加一次额外的HTTP访问,这样导致首次访问的延时比较高。

所以在实际情况中,我们可以将两种方式结合起来,先通过dns的方式来定位,然后通过http的方式来纠正偏差。

五、缓存的两种方式

CDN节点中缓存了服务器上的部分资源。那么服务器怎么去更新CDN节点的缓存呢?

一种方式,是服务器主动进行缓存的更新,CDN节点被动接受。另一种方式是用户请求的资源不存在时,CDN节点主动放弃请求,更新缓存,然后将数据返给用户。

显然第一种方式存在很多问题,例如很容易产生404等,所以一般采用第二种缓存方式。

六、CDN工作流程

当用户请求一个文件时,CDN的工作过程如下:

1.DNS请求当地local DNS

2.当地local DNS递归地查询服务器的gslb

3.服务器根据local DNS 分配最佳节点,返回IP

4.用户获得最佳接入IP,访问最佳节点。

5.如果该节点没有用户想要获取的内容,则通过内部路由访问上一节点,直到找到文件或到达源站为止。

6.CDN节点缓存该数据,下次请求该文件时可以直接返回。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/49861.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-25
下一篇2023-02-25

发表评论

登录后才能评论

评论列表(0条)

    保存