用云服务器被DDOS攻击后,如果超出云服务器的防御能力就很容易被服务器运营商引入黑洞,而云服务器商如阿里云提供的流量清洗服务是非常贵的。那么我们在使用云服务器时如何防止云服务器遭受DDOS攻击后被引入黑洞状态呢?
下面创诚网络(FWQ118.COM)介绍一下如何使用第三方高防服务器为云服务器遭到DDOS攻击时提供流量清洗服务。
序列号 | CPU | RAM | HDD | 带宽 | 售价(美元) | 免费试用 |
---|---|---|---|---|---|---|
香港服务器1 | E5-2620 | 32G | 1T HDD | 50M/无限流量 | $196.00 | 立即申请 |
香港服务器2 | E5-2650 | 32G | 1T HDD | 50M/无限流量 | $256.00 | 立即申请 |
香港服务器3 | E5-2680 | 32G | 1T HDD | 50M/无限流量 | $316.00 | 立即申请 |
香港服务器4 | E5-2690 | 32G | 1T HDD | 50M/无限流量 | $336.00 | 立即申请 |
香港服务器5 | E5-2697 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器6 | E5-2620*2 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器7 | E5-2650*2 | 32G | 1T HDD | 50M/无限流量 | $436.00 | 立即申请 |
香港服务器8 | E5-2680*2 | 32G | 1T HDD | 50M/无限流量 | $476.00 | 立即申请 |
香港服务器9 | E5-2690*2 | 32G | 1T HDD | 50M/无限流量 | $556.00 | 立即申请 |
香港服务器10 | E5-2697*2 | 32G | 1T HDD | 50M/无限流量 | $596.00 | 立即申请 |
香港服务器11 | E5-2680v4*2 | 32G | 1T HDD | 50M/无限流量 | $696.00 | 立即申请 |
香港服务器12 | E5-2698v4*2 | 32G | 1T HDD | 50M/无限流量 | $796.00 | 立即申请 |
平时用户端是直接访问云服务器的应用服务器的。
被攻击时,将域名解析到高防IP上,通过Nginx反向代理回源到云服务器上。
由于一般云服务器被DDOS时会进黑洞,所以加了一个用来将外网请求映射到内网的代理服务器。
为了提高被攻击时的网站打开速度,高防服务器上会使用静态文件缓存。
减少向后端应用服务器请求的次数。
首先高防服务器上Nginx配置如下
http
{
# 设置缓存目录
proxy_temp_path /home/proxy_cache_dir 1 2;
# 静态文件目录 1天
proxy_cache_path /home/proxy_temp_dir/cache_img levels=1:2 keys_zone=cache_img:1024m inactive=1d max_size=100g;
# html文件目录 10分钟有效
proxy_cache_path /home/proxy_temp_dir/cache_html levels=1:2 keys_zone=cache_html:1024m inactive=10m max_size=100g;
# 设置服务器地址
upstream server_tm服务器 {
server 120.76.0.0:80;
}
server
{
listen 80;
server_name www.qs5.org;
# 添加缓存命中头信息
add_header X-Cache $upstream_cache_status;
# 清除缓存
location ~ /purge_img(/.*) {
proxy_cache_purge cache_img $host$1$is_args$args;
}
location ~ /purge_html(/.*) {
proxy_cache_purge cache_html $host$1$is_args$args;
}
# html文件缓存 缓存10分钟
location ~ .(html|htm)$ {
proxy_pass http://server_tm服务器;
proxy_set_header Host $host;
#设置资源缓存的zone
proxy_cache cache_html;
#设置缓存的key
proxy_cache_key $host$uri$is_args$args;
#设置状态码为200和304的响应可以进行缓存,并且缓存时间为10分钟
proxy_cache_valid 200 304 10m;
expires 10m;
}
# 图片文件缓存
location ~ .(jpg|png|gif|css|js)$ {
proxy_pass http://server_tm服务器;
proxy_set_header Host $host;
#设置资源缓存的zone
proxy_cache cache_img;
#设置缓存的key
proxy_cache_key $host$uri$is_args$args;
#设置状态码为200和304的响应可以进行缓存,并且缓存时间为1天
proxy_cache_valid 200 304 1d;
expires 1d;
}
# 其他文件反向代理回源
location / {
proxy_pass http://server_tm服务器;
proxy_set_header Host $host;
}
access_log /home/wwwlogs/dominname_www_com.log;
}
}
具体每个参数的意义,该写注释的我都写了,自己酌情进行修改。
中间代理服务器的Nginx配置
这个就比较简单了,直接反向数据回去就好。
server
{
listen 80;
server_name www.dominname.com;
# 直接反向数据回应用服务器的内网IP上
location / {
proxy_pass http://192.168.1.16:80;
proxy_set_header Host $host;
}
access_log /home/wwwlogs/dominname_www_com.log;
}
同时,需要注意的是,云服务器内网一定要互通。
安全组或者路由一定要允许代理服务器通过内网访问应用服务器的80端口。
而服务器被攻击时,最好使用安全组禁止应用服务器的外网访问。
当然,其实更好的解决方案应该是:
应用服务器始终在内网使用。
一直使用边缘服务器提供对外服务。
高防服务器直接反向到应用服务器上。
这样就避免了黑洞时还要使用一个代理服务器做跳板的问题了。
边缘服务器和高防服务器的Nginx配置一致。