Nginx学习笔记(六)——连接限制、访问控制

本文详细介绍了Nginx的连接限制和访问控制。通过ngx_http_limit_conn_module和ngx_http_limit_req_module模块,分别对连接和请求速率进行了限制,防止DDoS攻击。在连接限制中,讨论了limit_conn_module的配置,包括限制每秒连接数。在访问控制方面,讲解了基于IP的http_access_module模块的使用,以及其局限性和解决方案。
摘要由CSDN通过智能技术生成

一、Nginx的请求限制

1.1 请求限制

限制主要有两种类型:

  • 连接限制: limit_conn_module
  • 请求限制: limit_req_module

对于连接限制 limit_conn_module模块

该ngx_http_limit_conn_module模块用于限制每个定义的密钥的连接数量,特别是来自单个IP地址的连接数量。

并非所有连接都被计算在内 ,只有在服务器处理请求并且已经读取了整个请求头时才计算连接。

  • 连接频率限制的配置:
Syntax: limit_conn_zone key zone=name:size;
Default: 
Context: http
	#可理解在内存中开辟一个区域对于指定的nginx变量(key,例如:binary_remote_addr)进行限制。name表示申请的空间的名字,size表示申请空间的大小。

Syntax: limit_conn zone number;
Default:  
Context: http, server, location
	#第二部分zone就是第一部分设置的名字name,number表示进行并发的限制。例如设置为1,表示一个时间段只能有一个。

  • 用法
http {
   
  # ...其它代码省略...
  # 开辟一个10m的连接空间,命名为addr
  limit_conn_zone $binary_remote_addr zone=addr:10m;
  server {
   
    ...
    location /download/ {
   
      # 服务器每次只允许一个IP地址连接
      limit_conn addr 1;
    }
  }
}

请求限制 ngx_http_limit_req_module模块

用于限制每一个定义的密钥的请求的处理速率,特别是从一个单一的IP地址的请求的处理速率。限制是使用“泄漏桶”方法完成的

  • 请求限制的配置:
    Syntax: limit_req_zone key zone=name:size rate=rate;
    Default: 
    Context: http
 #第一部分配置和连接配置相似,rate表示速率,以秒s为单位(rate=1r/s)
   
    Syntax: 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值