searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Nginx防DDoS攻击

2024-10-10 02:06:31
4
0

什么是DDoS攻击呢?

DDoS是“分布式拒绝服务”攻击的缩写。想象一下,如果有一大群坏孩子(恶意电脑)同时给你家的门铃按个不停,你的家人(服务器)就无法正常进出家门了。这就是DDoS攻击的效果,它会让服务器忙于应对大量的虚假请求,而无法处理真正的用户请求。

Nginx如何帮助防止DDoS攻击呢?

Nginx是一个非常强大的服务器软件,它有一些特殊的配置可以帮助我们阻挡这些坏孩子的捣乱。下面我会给你一些示例配置,并解释每一行是做什么的:

http {  
    # ... 其他配置 ...  
  
    # 防止DDoS的配置开始  
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;  
    limit_conn_zone $binary_remote_addr zone=addr:10m;  
  
    server {  
        # ... 其他配置 ...  
  
        # 限制请求频率  
        limit_req zone=one burst=5;  
          
        # 限制并发连接数  
        limit_conn addr 10;  
          
        # ... 其他配置 ...  
    }  
}
这些配置做了什么呢?

limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

这一行创建了一个叫做“one”的内存区域,用来存储客户端的地址。
$binary_remote_addr 是客户端的地址,但以一种更节省空间的方式存储。
zone=one:10m 指定了这个内存区域的名字和大小(10兆字节)。
rate=1r/s 表示每个客户端地址每秒只能发送一个请求。如果有更多的请求,它们会被暂时延迟处理。
limit_req zone=one burst=5;

这一行应用了我们之前定义的请求限制。
burst=5 表示如果一个客户端在短时间内发送了太多的请求,Nginx会允许额外的5个请求被放入队列中等待处理,而不是立刻拒绝它们。
limit_conn_zone $binary_remote_addr zone=addr:10m;

这一行创建了另一个内存区域来跟踪客户端的并发连接数。
limit_conn addr 10;

这一行限制了每个客户端地址同时只能有10个并发连接。如果有更多的连接尝试,它们会被拒绝。

                        

0条评论
作者已关闭评论
欧****鹏
8文章数
0粉丝数
欧****鹏
8 文章 | 0 粉丝
欧****鹏
8文章数
0粉丝数
欧****鹏
8 文章 | 0 粉丝
原创

Nginx防DDoS攻击

2024-10-10 02:06:31
4
0

什么是DDoS攻击呢?

DDoS是“分布式拒绝服务”攻击的缩写。想象一下,如果有一大群坏孩子(恶意电脑)同时给你家的门铃按个不停,你的家人(服务器)就无法正常进出家门了。这就是DDoS攻击的效果,它会让服务器忙于应对大量的虚假请求,而无法处理真正的用户请求。

Nginx如何帮助防止DDoS攻击呢?

Nginx是一个非常强大的服务器软件,它有一些特殊的配置可以帮助我们阻挡这些坏孩子的捣乱。下面我会给你一些示例配置,并解释每一行是做什么的:

http {  
    # ... 其他配置 ...  
  
    # 防止DDoS的配置开始  
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;  
    limit_conn_zone $binary_remote_addr zone=addr:10m;  
  
    server {  
        # ... 其他配置 ...  
  
        # 限制请求频率  
        limit_req zone=one burst=5;  
          
        # 限制并发连接数  
        limit_conn addr 10;  
          
        # ... 其他配置 ...  
    }  
}
这些配置做了什么呢?

limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

这一行创建了一个叫做“one”的内存区域,用来存储客户端的地址。
$binary_remote_addr 是客户端的地址,但以一种更节省空间的方式存储。
zone=one:10m 指定了这个内存区域的名字和大小(10兆字节)。
rate=1r/s 表示每个客户端地址每秒只能发送一个请求。如果有更多的请求,它们会被暂时延迟处理。
limit_req zone=one burst=5;

这一行应用了我们之前定义的请求限制。
burst=5 表示如果一个客户端在短时间内发送了太多的请求,Nginx会允许额外的5个请求被放入队列中等待处理,而不是立刻拒绝它们。
limit_conn_zone $binary_remote_addr zone=addr:10m;

这一行创建了另一个内存区域来跟踪客户端的并发连接数。
limit_conn addr 10;

这一行限制了每个客户端地址同时只能有10个并发连接。如果有更多的连接尝试,它们会被拒绝。

                        

文章来自个人专栏
DPVS
8 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0