nginx limit-req的一个注意点
要做一个很简单的功能。就是对整个nginx限流,因此也不需要定义好特别的变量
1 | #整个nginx每秒请求数限制: |
为了防止被误拦截,于是还特地加了limit_req_dry_run方法。这里就是限制整个nginx每秒20000次请求。超过了就返回503.
可观察了一天,发现居然还是要有超过的,虽然burst设置为10,可居然还是有超过的,最多的都超了20多。
这就很奇怪了,这个机器的并发根本不会到2万每秒的,难道这里必须写变量? 可也不对啊,这里检查也没有报错。那不会是nginx的bug,于是下载1.18.1的代码看了下
src/http/modules/ngx_http_limit_req_module.c文件的468行里是这样来的。

