Laravel api 访问频率限制 429 Too many requests
网页偶尔会出现 429 Too many requests,后端用的是laravel 5.5 。
,查了半天也没有相应的文档。
无意中用chrome 查看了http状态,才发现是laravel的限制:让后端改一下限制
http header信息:
Response HeadersCache-Control: no-cache, privateConnection: keep-aliveContent-Type: text/html; charset=UTF-8Date: Thu, 15 Nov 2018 01:49:31 GMTServer: Tengine/2.1.2Transfer-Encoding: chunkedVia: kong/0.14.1X-Kong-Proxy-Latency: 0X-Kong-Upstream-Latency: 25X-Powered-By: PHP/7.0.9X-RateLimit-Limit: 60X-RateLimit-Remaining: 59
其表现是在 HTTP 的 Response 头中缀上了请求次数统计
X-RateLimit-Limit:60X-RateLimit-Remaining:59
从 Chrome 的 console 看,每个 API 请求都会占用这个 limit 的限额。
X-RateLimit-Limit:60X-RateLimit-Remaining:53
等过一分钟(文档上是一分钟,实际没多长时间),再发送一个请求,都会发现限额已经被自动恢复。
对应的配置在 Laravel 项目文件 app/Http/Kernel.php
'api' => ['throttle:60,1','bindings',]
所以,
- 第一个参数 60 代表每分钟限制 60 次请求
- 第二个参数 1 代表触发了限制规则,则1分钟内禁止访问
将 60 调整成 10000 基本就可以保障访问的需求了。

浙公网安备 33010602011771号