码迷,mamicode.com
首页 > 其他好文 > 详细

nginx之 nginx限流配置

时间:2019-06-21 21:06:52      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:form   eve   agent   limit_req   types   timeout   gzip   time   access   

limit_req zone=req_zone;
严格依照在limti_req_zone中配置的rate来处理请求
超过rate处理能力范围的,直接drop
表现为对收到的请求无延时
limit_req zone=req_zone burst=5;
依照在limti_req_zone中配置的rate来处理请求
同时设置了一个大小为5的缓冲队列,在缓冲队列中的请求会等待慢慢处理
超过了burst缓冲队列长度和rate处理能力的请求被直接丢弃
表现为对收到的请求有延时
limit_req zone=req_zone burst=5 nodelay;
依照在limti_req_zone中配置的rate来处理请求
同时设置了一个大小为5的缓冲队列,当请求到来时,会爆发出一个峰值处理能力,对于峰值处理数量之外的请求,直接丢弃
在完成峰值请求之后,缓冲队列不能再放入请求。如果rate=10r/s,且这段时间内没有请求再到来,则每6 s 缓冲队列就能回复一个缓冲请求的能力,直到回复到能缓冲5个请求位置。

 


load_module modules/ngx_stream_module.so; #动态加载模块,必须写道开头
user nginx; #使用useradd nginx 添加一个nginx用户
worker_processes 4; #cpu核心数 * 2
worker_rlimit_nofile 102400; #配置nginx打开最大文件数 (每个工作进程绑定一个cpu,worker_cpu_affinity配置)
worker_cpu_affinity 0001 0010 0100 1000; #工作进程使用哪个cpu的核心 (以四核为例) 0001是4核的第一个核心 0010是4核的第二个核心

#error_log logs/error.log;
#error_log logs/error.log notice;
error_log logs/error.log info;

pid logs/nginx.pid;


events {
use epoll;
worker_connections 10240;
}


http {
include mime.types;
default_type application/octet-stream;

log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘
‘$status $body_bytes_sent "$http_referer" ‘
‘"$http_user_agent" "$http_x_forwarded_for"‘;

#access_log logs/access.log main; #在server虚拟目录里面配置日志,这里是全局日志

sendfile on;
#tcp_nopush on;



server_tokens off; #错误的时候关闭输出版本号


#keepalive_timeout 0;
keepalive_timeout 30;

gzip on; #压缩会占用cpu
gzip_buffers 4 16k;
gzip_comp_level 3; #压缩等级
gzip_disable "MSIE[1-6]"; #ie浏览器1-6禁用gzip
gzip_min_length 1k;
gzip_http_version 1.0;
gzip_types text/plaion application/html application/css application/js; #可以压缩的文件类型
gzip_vary on; #根据http头判断是否支持压缩

client_max_body_size 8m; #默认允许客户端最大上传文件大小

#限流
#limit_conn_zone $binary_remote_addr zone=addr:10m; #并发限制(同时启用一个)
limit_req_zone $binary_remote_addr zone=qps:10m rate=1r/s; #请求限制 每秒钟处理一个请求
limit_conn_log_level error;
limit_conn_status 503; #超出限制时,返回状态码


server{
#limit_conn addr 1; #并发限制设置为1,是为了测试 addr是zone空间在53行(同时启用一个)

#limit_req zone=qps; #请求限制
limit_req zone=qps burset=1 nodelay; #请求限制()

}







#限流end

}


nginx之 nginx限流配置

标签:form   eve   agent   limit_req   types   timeout   gzip   time   access   

原文地址:https://www.cnblogs.com/andy6/p/11066789.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!