nginx现在已经是最火的负载均衡之一,在流量陡增的互联网面前,接口限流也是很有必要的,尤其是针对高并发的场景。Nginx的限流主要是两种方式:限制访问频率和限制并发连接数。
# gzip压缩功能设置 gzip on; #限制请求 limit_req_zone $binary_remote_addr zone=myRateLimit:10m rate=5r/s; #按ip配置一个连接 zone limit_conn_zone $binary_remote_addr zone=perip_conn:10m; #按server配置一个连接 zone limit_conn_zone $server_name zone=perserver_conn:10m; upstream upstream_name{ server 127.0.0.1:8080; } server { listen 80; server_name localhost; location / { #请求限流排队通过 burst默认是0 limit_req zone=myRateLimit burst=5 nodelay; #连接数限制,每个IP并发请求为1 limit_conn perip_conn 5; #服务所限制的连接数(即限制了该server并发连接数量) limit_conn perserver_conn 5; #连接限速 指定每秒该连接能下载的bytes,主要用来限制个别请求的带宽 limit_rate 600k; limit_rate_after 50m; proxy_pass http://upstream_name; } #charset koi8-r; #access_log logs/host.access.log main; #charset koi8-r; #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }