前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nginx通过配置防止DDoS攻击

nginx通过配置防止DDoS攻击

作者头像
我的小熊不见了丶
发布2019-05-22 23:44:29
3.2K0
发布2019-05-22 23:44:29
举报
文章被收录于专栏:晓月寒·晓月寒·

nginx通过配置防止DDoS攻击

什么是DDoS攻击

DDoS攻击是Distributed Denial of Service的缩写,翻译成中文就是分布式拒绝服务。即不法黑客组织通过控制服务器等资源,发动对包括国家骨干网络、重要网络设施、政企或个人网站在内的互联网上任一目标的攻击,致使目标服务器断网,最终停止提供服务。

举个栗子,我开了一家店生意很好,隔壁邻居看不下去了叫他的七大姑八大姨每天都到我的店里来占着位置却不买东西,这样我的生意自然就不行了。也就是攻击者利用“肉鸡”对目标网站在较短的时间内发起大量请求,大规模消耗目标网站的主机资源,让它无法正常服务。在线游戏、互联网金融等领域是 DDoS 攻击的高发行业。

如何应对DDoS攻击

防止DDoS攻击有很多种方法,比如使用高防服务器、CDN加速、DDoS清洗等。但是由于经费的限制,我们整不起那些个高大上的玩意,所以只能在我们现有的材料上加工加工来达到应对DDoS攻击的目的。

nginx防止DDoS攻击

限制每秒的请求数

ngx_http_limit_req_module模块通过漏桶原理来限制单位时间内的请求数,一旦单位时间内请求数超过限制就会返回503错误。

在nginx.conf中新增如下配置:

代码语言:javascript
复制
http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=100r/s; //触发条件,所有访问ip 限制每秒10个请求
    ...
    server {
        ...
        location  ~ \.php$ {
            limit_req zone=one burst=5 nodelay;   //执行的动作,通过zone名字对应
               }
           }
     }

以上配置用到的一些参数:

参数

含义

$binary_remote_addr

二进制远程地址

zone=one:10m

定义zone名字叫one,并为这个zone分配10M内存,用来存储会话(二进制远程地址),1m内存可以保存16000会话

rate=100r/s

限制频率为每秒100个请求

burst=5

允许超过频率限制的请求数不多于5个,假设1、2、3、4秒请求为每秒9个,那么第5秒内请求15个是允许的,反之,如果第一秒内请求15个,会将5个请求放到第二秒,第二秒内超过10的请求直接503,类似多秒内平均速率限制。

nodelay

超过的请求不被延迟处理,设置后15个请求在1秒内处理。

由于使用的是漏桶原理,所以其实这个配置不止能用来防止DDoS攻击,还能用作服务器的限流。

限制单个IP的连接数

ngx_http_limit_conn_module模块可以用来限制单个IP的连接数,配置如下:

代码语言:javascript
复制
http {
    limit_conn_zone $binary_remote_addr zone=addr:10m; //触发条件
    ...
    server {
        ...
        location /download/ {
            limit_conn addr 2;    // 限制同一时间内2个连接,超出的连接返回503
                }
           }
     }

通过简单的配置使我们的服务能够过滤掉一些DDoS攻击,但是在专业的黑客面前这些确实都只能算是小菜,想要真正提高服务器的抗压能力,还是得使用专业的工具。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.03.04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • nginx通过配置防止DDoS攻击
  • 什么是DDoS攻击
  • 如何应对DDoS攻击
  • nginx防止DDoS攻击
    • 限制每秒的请求数
      • 限制单个IP的连接数
      相关产品与服务
      内容分发网络 CDN
      内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档