虚拟主机域名注册-常见问题其他问题 → 其他问题

NGINX服务器中的连接数(请求数)怎么限制

  通常在NGINX中有三种主要的限制使用或流量的方法:

  ①限制连接(请求)的数量。

  ②限制请求的速率。

  ③限制带宽。

  上面的NGINX流量管理方法可以根据用例配置为基于定义的密钥进行限制,最常见的是客户端的 IP 地址。NGINX 还支持其他变量,例如会话 cookie 等等。

  玉林云将和大家讨论如何限制NGINX中的连接数以保护您的网站/应用程序。

  请记住,只有当服务器正在处理请求并且整个请求标头已被读取时, NGINX才会考虑限制连接。因此,并非所有客户端连接都被计算在内。

  一、限制 NGINX 中的连接数

  首先,您需要使用limit_conn_zone指令定义一个共享内存区域,用于存储各种键的连接指标。如前所述,密钥可以是文本、变量(例如客户端的远程 IP 地址)或两者的组合。

  这个在 HTTP 上下文中有效的指令有两个参数:key 和zone(格式为 zone_name:size)。

  limit_conn_zone $binary_remote_addr zone=limitconnbyaddr:20m;

  要设置返回给被拒绝请求的响应状态代码,请使用将HTTP 状态代码作为参数的limit_conn_status指令。它在 HTTP、服务器和位置上下文中有效。

  limit_conn_status 429;

  要限制连接,请使用limint_conn指令设置要使用的内存区域和允许的最大连接数,如以下配置片段所示。该指令在 HTTP、服务器和位置上下文中有效。

  limit_conn limitconnbyaddr 50;

  这是完整的配置:

  保存文件并关闭它。

  然后通过运行以下命令检查NGINX配置是否正常:

  $ sudo nginx -t

  接下来,重新加载NGINX服务以影响最近的更改:

  $ sudo systemctl reload nginx

  二、检查 Nginx 连接限制

  当客户端超过允许的最大连接数时,NGINX会向客户端返回“ 429 Too many requests ”错误

  三、限制 Nginx 与应用程序的连接数

  您还可以通过使用$server_name变量来限制给定服务器的连接数:

  此配置使NGINX能够将与为应用程序testapp.a5idc.cnet提供支持的虚拟服务器的连接总数限制为2000个连接。

  注意:基于客户端 IP 限制连接有一个缺点。您最终可能会限制不止一个用户的连接,特别是如果访问您的应用程序的许多用户都在同一个网络上并且在NAT后面运行——他们的所有连接都来自同一个 IP 地址。

  在这种情况下,您可以使用 NGINX 中可用的一个或多个变量,这些变量可以在应用程序级别识别客户端,例如会话 cookie。




免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:bkook@qq.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:美国大带宽服务器适合部署高清视频网站吗
下一篇:Linux系统服务器中怎么多次运行命令
  >> 相关文章
没有相关文章。