欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

浅谈CDN技术的基本原理与阿里云CDN的使用

程序员文章站 2022-04-18 23:09:51
这篇文章主要介绍了CDN技术的基本原理与阿里云CDN的使用,阿里云去年的CDN降价策略给业界市场带来不小的震动,而现在也已经加入了对HTTPS的支持,需要的朋友可以参考下... 16-02-22...

如果你有一个小站,经过细心经营,流量慢慢变大,或者你想搞个活动,请求量会比平时多很多。你租的虚拟主机网络可能会被打 爆,导致整个网站打开变慢。想扩大带宽却发现独享带宽很贵,这个时候你可以使用cdn。
如果你有一个店铺,业务慢慢做大,客户遍布全国甚至全球,你时常收到客户的抱怨,你的网站在某个地区打开很慢。那么你可以使 用cdn。
互联网江湖险恶,你经营的网站时常遭到竞争对手的攻击或者其他不明身份人的入侵,仅仅凭借你的几台服务器,无力对抗邪恶势 力,你也没有足够的资金去雇佣安全人员。那么,你也可以使用cdn。
现代的cdn (content delivery network),俗称内容分发网络,它提供充足的带宽、遍布全国的节点,让你的网站部署到了客户的家门口。此外,现代cdn一般都有提供全套的安全解决 方案,保护你的源站,将危险挡在墙外。

cdn是如何运行的?
一般来说,用户是这样通过cdn来访问网站的:
1. 用户是通过域名来访问网站的,然后各地用户的请求会被调配到当地的cdn节点。
2. cdn节点会从真实的源网站拿到内容,再吐给用户。如果该内容可以缓存,则会根据协议存在cdn一段时间。如果下次有其他用户再来访问cdn,就有可能拿 到缓存的内容,就直接返回了。
浅谈CDN技术的基本原理与阿里云CDN的使用

现在互联网的攻击一般分为两种:
1. 依靠蛮力的分布式攻击,用海量的“肉鸡”不停的访问你的网站,让你的出口带宽撑满,服务器过载,不能服务。
2. 依靠巧力的渗透攻击,流量可能不大,但是危害性非常高。比如利用网站的漏洞入侵你的数据库,破解你的服务器密码。
cdn是网站的前哨,根据上述攻击类型:
1. 针对蛮力攻击,一般会构建硬件或者软件的防御工具,利用cdn海量的带宽和数据分析能力,将洪水挡在外面。
2. 防御渗透攻击,依靠安全人员充足的经验,利用规则进行入侵检测,建立起应用层的防火墙。                                   

浅谈CDN技术的基本原理与阿里云CDN的使用

阿里云cdn
cdn的价值就在于遍布全国的节点,强大的带宽吞吐能力。阿里云现在单点最小服务能力是10g,全国超过40余个节点,大部 分省份和运营商均有覆盖,可以帮助客户提高网站的服务体验,灵活处理突发的流量。有充满经验的技术和运营人员,保障过淘宝双11,让客户 的体验达到最佳。
阿里云cdn提供了从4层到7层的安全解决方案,只要接入cdn,就会自动开启4层防ddos攻击,可防御400g以上的攻 击,另外也可配置选择接入应用层防ddos和渗透攻击。阿里云有顶尖的安全技术人员日夜监控网站的风险,为客户及时修补漏洞。


云解析负载均衡

在大型的网络应用中,使用多台服务器提供同一个服务。平均分配每台服务器上的压力、将压力分散的方法就叫做负载均衡。 利用云解析来实现服务器流量的负载均衡,其原理就是“给网站访问者分配不同的ip地址”。
 例如:有3台服务器,对应3个ip地址,分别是1.1.1.1、2.2.2.2、3.3.3.3,设置的3个a记录如下:

a www default 1.1.1.1 600

a www default 2.2.2.2 600

a www default 3.3.3.3 600

dns负载均衡的优点是采用简单的轮循负载算法,据解析记录配置的权重轮询3个a记录(默认权重1:1:1),依次返回3个ip地址,

操作流程:

第1步:免费开启云解析,进入到域名控制台

第2步:将您要设置的负载均衡设置多个a记录解析

第3步:点击左侧负载均衡,选中域名,点开启确认即可,并根据自身需求修改权重即可

对https的支持
阿里云已经在1月20日上线了 https cdn。
浅谈CDN技术的基本原理与阿里云CDN的使用

步骤总体而言很简单,输入证书和私钥
浅谈CDN技术的基本原理与阿里云CDN的使用

修改之后业务类型会变成 https 安全。
实际上 nginx 配置里的 ssl_certificate 和 ssl_certificate_key 就是 pem 编码的,直接拿来就能用。

如果提示证书格式不对,是因为要求每行64字符,比如我使用的 alphassl 的泛域名证书就有一行超过64字符,输入的时候在 u 前面换一行就行。
浅谈CDN技术的基本原理与阿里云CDN的使用

关于使用了 cdn 之后的日志问题(访问的就都变成了 cdn 服务器),可以通过修改 nginx 的 log_format 实现:

在 /etc/nginx/nginx.conf 的 http 字段下添加一行 log_format :

复制代码
代码如下:

log_format ssl '$http_x_forwarded_for - $remote_user [$time_local] "$request" '
' $ssl_protocol/$ssl_cipher '
' $status $body_bytes_sent "$http_referer""$http_user_agent" ';

然后在对应站点的配置下把 access log 的配置改掉:

复制代码
代码如下:

access_log /var/log/nginx/blog_access.log ssl;

不能在监听443的 server 区块里直接定义 log_format,否则会报错 nginx [emerg]:”log_format” directive is not allowed