Nginx:限制每个基本身份验证用户的连接数

Nginx:限制每个基本身份验证用户的连接数

nginx 为几个大文件提供服务。用户通过基本身份验证获得访问权限。htpasswd 我想将每个用户同时下载的文件限制为最多 5 个连接。有多个用户通过 1 个 IP 地址获得访问权限,因此无法通过 IP 进行访问。

我尝试过以下操作:

map "$remote_user" $num {
     default 5
     }

server {
 location /source {
   root /home/frog/source/;
   auth_basic "Login";
   auth_basic_user_file /home/frog/.htpasswd;
   set $limit_conn $num;
  }

但它不会限制它。我仍然同时打开超过 5 个连接。救命!

答案1

经过一番阅读,结果是这样的:

limit_conn_zone $remote_user zone=limit:10m;

server {
 location /source {
   root /home/frog/source/;
   auth_basic "Login";
   auth_basic_user_file /home/frog/.htpasswd;
   limit_conn limit 5;
  }

需要设置limit_conn_zone $远程用户区域=限制:10米;外部服务器阻止然后添加limit_conn 限制 5;里面服务器堵塞

现在每个用户可以同时打开不超过5个连接。

相关内容