CDN介绍

CDN介绍

CDN本身是用来做分发网络的,说得通俗点就是将我们网站上的静态资源镜像一份存放在CDN各节点服务器上,不同地域的用户访问这些静态资源时能做到“就近读取”,从而加快网站响应及渲染速度。

但因为CDN本身的特点(如:分布式、负载均衡等),使得CDN现在也作为网站上的一种防护手段,比如说我们利用CDN可以做到:

  • 隐藏源服务器IP
  • 突破地域网络限制,如:假设源服是托管在电信机房的,当移动用户访问网站时可能较慢,但给网站加上CDN后,移动用户访问网站时速度上会有明显提升;
  • CDN的分布式节点帮我们清洗了流量,达到了分流效果。

所以有一种说法是CDN可以护DDoS攻击,其实这种说法也是有一定依据的。为啥这样说呢?

想知道其中原委就得先弄清楚什么是DDoS。

DDoS代表分布式拒绝服务,攻击者将很多台电脑集中起来,发出指令,让很多台电脑对同一个网站进行请求,一旦这些电脑数量众多,就很容易导致网站出现以下情况:

  • 服务器上行带宽占满;
  • 服务器CPU、内存占满;
  • 服务器忙于处理攻击源的请求,对于其它正常用户的请求无暇顾及。

cdn能防ddos攻击吗

CDN本身就是分式布的,所以是可以抗住一部分的DDoS攻击的,原因也很简单:

  • 不同地域发起攻击的电脑会就近读取CDN节点上的缓存数据,不会实时回源,所以源站压力得到缓解,此时攻击流量就分散掉了;
  • CDN厂商对于节点服务器也做了防护措施,各节点服务器的带宽也绝对比我们源服务器带宽要大得多,攻击者攻击我们时,这些攻击流量是先到CDN节点服务器上的;
  • 我们可以设置缓存策略,这样可以减少回源频率。

但是CDN是不能完全当成防护墙来使用的,对于大流量的DDoS,一般CDN厂商可能会要求你暂停使用CDN,改换高防IP或者让机房处理流量攻击。

所以说CDN的使用只能在一定程度上帮我们减少DDoS攻击的影响,CDN只能防一些小流量的DDoS,对于那种百G以上的DDoS,CDN厂商是不乐意帮你护防的!

怎样获取CDN上用户真实IP地址

使用nginx -V 查看一下nginx 参数中有没有–with-http_realip_module

[root@aliyun cnyunwei]# nginx -V

nginx version: nginx/1.10.1

built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) 

built with OpenSSL 1.0.2h  3 May 2016

TLS SNI support enabled

configure arguments: --prefix=XXXXXX   --with-http_realip_module  XXXXXX

默认是不安装该模块的,所以如果检测出来没有这个模块就需要重新编译了,重新编译也非常方便,即使是线上不能停机当然也可以编译,平滑升级即可。

进入nginx 源码安装包目录下

configure 的参数就和原来保持一样,只是增加一个–with-http_realip_module

例如:–prefix=/usr/local/nginx --with-http_stub_status_module --with-http_realip_module

make && make install

至于平滑升级,可直接执行 killall -s USR2 nginx

接下来是编辑对应的配置文件设置

location 中加入以下信息:

set_real_ip_from 222.222.222.222;  #这里是需要填写具体的CDN服务器IP地址

real_ip_header  X-Forwarded-For;

real_ip_recursive on; 

在这里插入图片描述
写一个测试页面来检测读取的访问IP地址是否已经获取到了用户IP地址 vim ip.php

< ?php 
echo "Welcome cnyunwei.cc !"; 
echo '
server_addr : '; 
echo $_SERVER['SERVER_ADDR']; 
echo 'remote_addr : '; 
echo $_SERVER['REMOTE_ADDR']; 
echo 'host : '; 
echo $_SERVER['HTTP_HOST']; 
?>

下面即可直接访问测试,remote_addr 是否为你当前的公网IP地址,然后修改本地电脑hosts 重定向到CDN服务器再测试验证IP地址是否正确读取,如果正确的情况访问日志中也会正确显示对应的来访IP地址而不是CDN服务器的地址。

参考链接 :

https://www.hackbase.net/article-256830-1.html

怎样获取CDN上用户真实IP地址 :
https://www.jianshu.com/p/1010351e66d7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值