虚拟主机域名注册-常见问题 → 其他问题 → 其他问题 | ||||
通常在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。
|
||||
>> 相关文章 | ||||
没有相关文章。 |