一般我们都认为nginx -t可以测试出配置文件是否配置正确。
其实不然~
limit_req_zone
1 | limit_req_zone $binary_remote_addr zone=req_one:10m rate=1r/s |
这是nginx配置速率限制的插件。具体可以自行查询相关资料。
坑
当时原本设置的限制条件为$uri,测试的过程中,发现实际上$request_uri才是符合要求的限制条件,因而修改了配置,nginx -t
测试顺利通过,nginx -s reload
也没有任何报错。但是实际上,nginx worker并没有退出。
一开始还认为是worker承载的请求太多,以至于请求没能处理完毕,导师worker延迟退出。
直到多心去看了一眼日志,才发现,limit_req这个模块,在设置limit_req_zone
的时候是无法修改限制条件的。
方法
只能够同时修改zone~~~