目标是限制 https://www.example.com/search.php 每个 IP 每秒最多访问 1 次,请问是直接这样设置吗?
limit_req_zone $binary_remote_addr zone=search:10m rate=1r/s;
当用户访问 https://www.example.com/search.php ,页面里引用的 CSS 、JS 、图片等资源会不会单独计算请求数?假设页面有 20 个引用资源,是不是应该这样设置?
limit_req_zone $binary_remote_addr zone=search:10m rate=20r/s;
一般页面,通常限制每秒多少请求数比较合适?看 Nginx 官方文档示例是限制每秒 10 个,允许突发 5 个。
1
0312birdzhang 2022-06-16 09:47:24 +08:00
> 当用户访问 https://www.example.com/search.php ,页面里引用的 CSS 、JS 、图片等资源会不会单独计算请求数?
建议看一下你的资源文件 url 地址。。。Chrome/火狐里面按 F12 ,网络里面(手动狗头 |
2
BrJfUsTD OP @0312birdzhang 访问页面下方显示 20 个请求数,这样 limit_req 也要设置 20 哦?
|
3
pupboss 2022-06-16 09:51:02 +08:00 via iPhone 1
一般来讲,限速是针对后端接口,你只针对那一个接口的路由做限速就好。再就是静态资源最好用静态文件的配置,路由隔离开来,好处非常多
|
4
BeforeTooLate 2022-06-17 09:04:21 +08:00
首先 css 和 js ,图片没有做 cdn 独立域名的话会算入请求数
所以你可以上 cdn 或者资源文件路径用另外域名。 |