作者/来源:新睿云小编 发布时间:2019-09-23
CDN服务器是一种特殊类型的服务器系统,准确的说它不是一台服务器,而是由多台服务器组成的一个缓存服务器系统。它可以起到对互联网服务器加速的功能。通常来说我们的互联网服务都是部署在某地某一台服务器上,但是这个地方的网络在全国各地的访问速率是不一样的,远的地方或者线路不一样的地方,延迟可能会很高。采用CDN服务器后,由于在全国各地均有缓存服务器,系统能够根据用户位置提供距离客户最近的缓存服务器,所以能够大大减少延迟,提升网络服务器的访问速度。
CDN的英文全名是Content Delivery Network,即内容分发网络。所以CDN服务器是一套网络服务器系统。那么什么样的互联网业务需要用到CDN服务器呢?该如何使用CDN服务器呢?
冲上边的分析可以知道,对网络延迟非常敏感的互联网服务可能会需要CDN服务器。比较典型有网络游戏、视频、直播等,一些需要实时更新的地图服务可能也需要CDN服务器。而普通的网站,文字为主的论坛、门户、博客,甚至一些图片站都不需要CDN。绝大多数的APP也不需要CDN服务器。
如何搭建自己的CDN服务器?
我是用的是新睿云的域名解析服务。在此,我想要搭建域名www.xinruiyun.cn的CDN,根据我的需求,我设置了如下的解析:如果访问者在国外,那么将会解析到我的国外的服务器上。否则,就解析到国内的CDN。
配置服务器
在Nginx配置文件库conf.d/下新增一个文件。我将它命名为www.xinruiyun.cn.conf。文件内容如下:
proxy_cache_path /var/www/caches/www.xinruiyun.cnlevels=1:2 keys_zone=xinruiyun:128m inactive=2880m max_size=128m;
server {
listen 443 ssl;
server_name www.xinruiyun.cn;
charset utf-8,gbk;
ssl on;
ssl_certificate /etc/ssl/certs/1_www.xinruiyun.cn_bundle.crt;
ssl_certificate_key /etc/ssl/private/2_www.xinruiyun.cn.key;
location / {
proxy_set_header Accept-Encoding "";
proxy_pass https://www.xinruiyun.cn;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache xinruiyun;
proxy_cache_valid 200 304 30m;
proxy_cache_valid 301 24h;
proxy_cache_valid 500 502 503 504 0s;
proxy_cache_valid any 1s;
proxy_cache_min_uses 1;
expires 48h;
}
}
重要解释:
如果不需要使用https,可以把SSL的配置语句删除,并只监听80端口。
/var/www/caches/www.xinruiyun.cn是缓存目录位置,这个需要手动创建,至于权限,默认sudo创建的即可。
keys_zone=xinruiyun:128m相当于给你的缓存起了个名字,并设置最大可用的内存空间。这里,我起的xinruiyun名字必须要与下面的proxy_cache相同。
proxy_pass https://www.xinruiyun.cn;设置原站主机地址。为了不让它解析到自己的ip上,我们需要修改此CND服务器的/etc/hosts文件。在文件中添加一条记录,把域名解析到源站主机,比如:0.0.0.0 www.xinruiyun.cn
expires 48h;这里设置的是缓存过期时间。
其他参数可以自己了解。
然后,就大功告成啦!当然想了解更多请阅读《为什么大公司无偿提供CDN服务呢?》