参考 :
http://nginx.org/en/docs/http/ngx_http_limit_req_module.html
http://www.tuicool.com/articles/ZvyaQn
http://storysky.blog.51cto.com/628458/642970/
第二个链接里面的nginx有点老,所以 limit_zone 改为 limit_conn_zone
http
{
limit_conn_zone $binary_remote_addr zone=one:10m;
limit_req_zone $binary_remote_addr zone=req_one:10m rate=1r/s;
server
{
......
limit_conn one 1;
limit_req zone=req_one burst=120;
......
}
}
这里的 one 是声明一个 limit_zone 的名字,$binary_remote_addr是替代 $remore_addr 的变量,10m 是会话状态储存的空间limit_conn one 1 ,限制客户端并发连接数量为1
rate=1r/s 的意思是每个地址每秒只能请求一次,也就是说根据令牌桶原理 burst=120 一共有120块令牌,并且每秒钟只新增1块令牌,120块令牌发完后 多出来的那些请求就会返回503
编辑回复