1. 首页>
  2. 技术文章>
  3. nginx限速

nginx限速

2/8/23 4:52:13 PM 浏览 1159 评论 0

nginx

http {
   limit_conn_zone $binary_remote_addr zone=addr:10m;
   ...
   服务器 {
       ...
       位置/下载/ {
           limit_conn addr 1;
}

step1:定义请求限制空间

limit_conn_zone $binary_remote_addr zone=mylimit:10m

1. $binary_remote_addr,表明是以remote_addr为限制目标,加上binary是为了压缩内存占用空间

remote_add记录的是ip地址信息,如:“192.168.1.222”会占用7到15个字节,

而如果用binary_remote_addr只会占用4个字节。

就相当于不同的表示方式,一个全程一个缩写的表示。

2. zone=name:size,分配一个以name为名的并且大小为size的内存空间,用来存储访问的频次信息

1M能存储16000 IP地址的访问信息,10M可以存储16W IP地址访问信息。

当超过此限制时,服务器将返回 错误 以响应请求。

说的有点笼统,如果我们要限制服务器并发为300,单IP并发为25,那么可以下面这样设置:

limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;
limit_conn perserver 300;
limit_conn perip 25;


网友讨论