nginx控制客户服务端并发数量,客户端请求速率,下载速率

nginx控制客户服务端并发数量,客户端请求速率,下载速率


在nginx.conf里的http{}里加上如下代码:

# ip limit(访问ip限制)

limit_conn_zone $binary_remote_addr zone=perip:10m;

# server limit

limit_conn_zone $server_name zone=perserver:10m;

# 客户端请求Nginx的速率设置,请求客户端以IP为key值,内存区域名为req_one,访问速率限制为每秒一个请求

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

在需要限制并发数和下载带宽的网站配置

server{}里加上如下代码:

# 每个IP并发连接数为2

limit_conn perip 2;

# 每个主机的最大并发数为20

limit_conn perserver 20;

# 开始不限速,在下载量达到100M后,限速为下边的值

limit_rate_after 100M;

# 下载速率为100k

limit_rate 100k;

# 客户端请求Nginx的速率设置,使用前面定义的名为req_one,队列值为5,即可以有5个排队等待

limit_req  zone=req_one  burst=5;


解释:

$binary_remote_addr是限制同一客户端ip地址;

$server_name是限制同一server最大并发数;

limit_conn为限制并发连接数;

limit_rate为限制下载速度;

limit_rate_after为设置一个值在达到该值后,limit_rate限制值才可以生效

limit_req为限制客户端的请求速率


Example:

# ip limit(访问ip限制)

limit_conn_zone $binary_remote_addr zone=perip:10m;

# 客户端请求Nginx的速率设置,请求客户端以IP为key值,内存区域名为req_one,访问速率限制为每秒一个请求

limit_req_zone  $binary_remote_addr  zone=req_one:10m rate=60r/s;

server {

listen      80 default_server;

server_name  download.wwe.cn;

access_log  off;

error_log off;

root  /download;

# 每个IP并发连接数为10

limit_conn perip 10;

# 开始不限速,在下载量达到100M后,限速为下边的值

limit_rate_after 150M;

# 下载速率为100k

limit_rate 100k;

# 客户端请求Nginx的速率设置,使用前面定义的名为req_one,队列值为5,即可以有5个排队等待

limit_req  zone=req_one  burst=5;

location / {

if ($request_filename ~* ^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$)

{

add_header Content-Disposition: 'attachment;';

}

}

}

你可能感兴趣的:(nginx控制客户服务端并发数量,客户端请求速率,下载速率)