为啥这样设置以后,用自己的压力测试工具测试,不到 100 个并发就触发了 503 ? rate 我是设置的 3000 并发每秒啊
limit_req_zone $binary_remote_addr zone=req:20m rate=3000r/s; limit_req zone=req nodelay;
1
lhbc 2016-07-26 01:01:42 +08:00
压力测试是并发,不是并发 /秒
同时发出 100 个请求,处理完 1 个请求,马上再发 1 个 就是说,并发只保证任一时刻,都有 100 个请求压着服务器,而不是每秒只发 100 个请求 |
4
yamada OP @lhbc nginx.conf :
http{ ... limit_req_zone $binary_remote_addr zone=one:10m rate=3000r/s; limit_req zone=one nodelay; } 测试工具我自己写的,就起 20 个线程循环访问网站, 1 秒内的请求书达不到 3000 的, nginx errlog: 2016/07/26 13:42:55 [error] 31706#31706: *3954481 limiting requests, excess: 1.000 by zone "one", client: x.x.x.x, server: , request: "GET /hello HTTP/1.1", host: "x.x.x.x", referrer: "" |
5
zeraba 2016-07-26 18:26:10 +08:00 via Android
binary_remote_addr 因为是这个 要看你测试的页面情况 话说干嘛不用别人造好的 waf 轮子 比如 verynginx
|
7
zeraba 2016-07-27 09:12:17 +08:00 via Android
@yamada 你试试测试的文件单 echo hello word 试试 然后再这个文件基础上 输出个笑脸图片 比如 img ./haha.png a 标签是 域名 /haha.png 再试试
|