Nginx如何限制http资源请求(nginx限制访问ip)

Nginx如何限制http资源请求(nginx限制访问ip)

浏览次数:
信息来源: 用户投稿
更新日期: 2026-02-27 09:21:09
文章简介

前置条件:nginx需要有ngx_http_limit_conn_module和ngx_http_limit_req_module模块,可以使用命令2gt;1nginx-v|tr'''

2025阿里云双十一服务器活动

前置条件:nginx需要有ngx_http_limit_conn_module和ngx_http_limit_req_module模块,可以使用命令2>&1nginx-v|tr'''

'|greplimit检查有没有相应模块,如果没有请重新编译安装这两个模块。

}

使用$binary_remote_addr变量作为参数的时候,是基于ip地址的限制,同样可以使用$server_name变量进行给定服务器连接数的限制:

limit_conn_zone$server_namezone=servers:10m;

limit_req_zone$binary_remote_addrzone=one:10mrate=1r/s;

limit_req_zone$binary_remote_addrzone=one:10mrate=1r/s;

Nginx如何限制http资源请求,nginx限制访问ip

使用如上配置,nginx在/search/路由下将每秒处理不超过1个请求,延迟处理这些请求的方式是总速率不大于设定的速率。nginx将延迟处理此类请求,直到"存储区"(共享存储区one)已满。对于到达完整存储桶的请求,nginx将响应503serviceunavailable错误(当limit_req_status未自定义设定状态码时)。

限制宽带

要限制每个连接的带宽,请使用以下limit_rate指令:

}

通过此设置,客户端将能够通过单个连接以最高50k/秒的速度下载内容。客户端可以打开多个连接跳过此限制。因此,如果目标是阻止下载速度大于指定值,则连接数也应该受到限制。例如,每个ip地址一个连接(如果使用上面指定的共享内存区域):

}

要仅在客户端下载一定数量的数据后施加限制,请使用该limit_rate_after指令。允许客户端快速下载一定数量的数据(例如,文件头-电影索引)并限制下载其余数据的速率(使用户观看电影而不是下载)可能是合理的。

limit_rate20k;

以下示例显示了用于限制连接数和带宽的组合配置。允许的最大连接数设置为每个客户端地址5个连接,这适用于大多数常见情况,因为现代浏览器通常一次最多打开3个连接。同时,提供下载的位置只允许一个连接:

limit_conn_zone$binary_remote_addresszone=addr:10m

标签:
超微服务器是哪个国家的
« 上一篇
返回列表
下一篇 »

如本文对您有帮助,就请抽根烟吧!