【服务器运维】nginx怎样处置惩罚请求数
2019-11-21网站运维搜奇网99°c
A+ A-所以必须要在nginx做相应的限定,让进击没有到后端的效劳器。这里论述的是能在单元时间内限定要求数的ngx_http_limit_req_module模块。
装置模块这些简朴的步骤这里就不引见了,就引见一下设置的参数,愿望对人人有效。
一、nginx限定要求数ngx_http_limit_req_module模块 (引荐进修:nginx教程)
1、键值的定义,就是限定的参数。这个在http内里设置。
limit_req_zone
语法: limit_req_zone $variable zone=name:size rate=rate;
默认值: none
设置段: http
例子:
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
申明:地区名称为one,大小为10m,均匀处置惩罚的要求频次不能凌驾每秒一次。
键值是客户端IP。
运用$binary_remote_addr变量, 能够将每条状况纪录的大小削减到64个字节,如许1M的内存能够保留约莫1万6千个64字节的纪录。
假如限定域的存储空间耗尽了,关于后续一切要求,效劳器都邑返回 503 (Service Temporarily Unavailable)毛病。
速率能够设置为每秒处置惩罚要求数和每分钟处置惩罚要求数,其值必需是整数,所以假如你须要指定每秒处置惩罚少于1个的要求,2秒处置惩罚一个要求,能够运用 “30r/m”。
2、设置你所愿望的日记级别。
limit_req_log
语法: limit_req_log_level info | notice | warn | error;
默认值: limit_req_log_level error;
设置段: http, server, location
当效劳器由于频次太高谢绝或许耽误处置惩罚要求时能够记下相应级别的日记。 耽误纪录的日记级别比谢绝的低一个级别;比方, 假如设置“limit_req_log_level notice”, 耽误的日记就是info级别。
3、设置毛病返回值。
语法: limit_req_status code;
默认值: limit_req_status 503;
设置段: http, server, location
该指令在1.3.15版本引入。设置谢绝要求的相应状况码。
4、设置对应的同享内存限定域和许可被处置惩罚的最大要求数阈值。
语法: limit_req zone=name [burst=number] [nodelay];
默认值: —
设置段: http, server, location
limit_req_zone $binary_remote_addr zone=ttlsa_com:10m rate=1r/s; server { location /www.ttlsa.com/ { limit_req zone=ttlsa_com burst=5; } }
限定均匀每秒不凌驾一个要求,同时许可凌驾频次限定的要求数不多于5个。
假如不愿望凌驾的要求被耽误,能够用nodelay参数,如:
limit_req zone=ttlsa_com burst=5 nodelay;
以上就是nginx怎样处置惩罚要求数的细致内容,更多请关注ki4网别的相干文章!