Nginx核心要领九:Nginx限制并发连接数与每秒连接数
在微服务架构中,我们经常听到在网关中对某服务进行限速,已保护后端服务的稳定性,防止被大流量冲垮,在Nginx中也可以对请求限速Nginx中有两个指令:1.limit_conn 限制并发连接数2.limit_req 限制每秒连接数1.limit_conn 限制并发连接数ngx_http_limit_conn_module 默认编译进nginx,可通过–without-http_limi...
·
在微服务架构中,我们经常要在网关中对服务进行限速,以保护后端服务的稳定性,防止被大流量冲垮,在Nginx中也可以对请求限速
Nginx中有两个指令:
- 1.limit_conn 限制并发连接数
- 2.limit_req 限制每秒连接数
1.limit_conn 限制并发连接数
ngx_http_limit_conn_module 默认编译进nginx,可通过–without-http_limit_conn_module禁用功能
http {
#以IP为key进行限速,再定义一个共享内存size=10M,name=one,供下面的limit_conn指令使用,共享内存大小能对多少请求进行限速,可以根据业务调整
limit_conn_zone $binary_remote_addr zone=one:10m;
server {
server_name zy.csxiuneng.com;
root html/;
location /{
limit_conn_status 500;#默认503,自定义响应码
limit_conn_log_level warn;#默认error,自定义为 warn
#每秒只发送50字节给客户端,默认不设置,测试时可以设置
limit_rate 50;
#同时并发连接数为1,只要同时有2个客户端连接就会触发限速,对应上面limit_conn_zone的name=one
limit_conn one 1;
}
}
}
2.limit_req 限制每秒连接数
ngx_http_limit_req_module 默认编译进nginx,可通过–without_http_limit_req_module禁用功能
http {
#以IP为key进行限速,再定义一个共享内存size=10M,name=one,每分钟可以处理10个请求
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/m;
server {
server_name zy.csxiuneng.com;
root html/;
location /{
limit_req_status 500;#默认503,自定义响应码
limit_req_log_level warn;#默认error,自定义为 warn
limit_req zone=one burst=10; #对应上面limit_req_zone的name=one,同时,当请求达到最大上限10后,多余的请求放入burst,burst可以放入10个,如果超出burst个请求,只直接返回500给用户
}
}
}
如果同时配置limit_req、limit_conn,如果先触发limit_req则先生效,不会触发后面的limit_conn了
更多推荐
已为社区贡献12条内容
所有评论(0)