1. 程式人生 > 實用技巧 >Laravel api 訪問頻率限制 429 Too many requests

Laravel api 訪問頻率限制 429 Too many requests

網頁偶爾會出現 429 Too many requests,後端用的是laravel 5.5 。
,查了半天也沒有相應的文件。
無意中用chrome 查看了http狀態,才發現是laravel的限制:讓後端改一下限制

http header資訊:


  1. Response Headers
  2. Cache-Control: no-cache, private
  3. Connection: keep-alive
  4. Content-Type: text/html; charset=UTF-8
  5. Date: Thu, 15 Nov 2018 01:49:31 GMT
  6. Server: Tengine/2.1.2
  7. Transfer-Encoding: chunked
  8. Via: kong/0.14.1
  9. X-Kong-Proxy-Latency: 0
  10. X-Kong-Upstream-Latency: 25
  11. X-Powered-By: PHP/7.0.9
  12. X-RateLimit-Limit: 60
  13. X-RateLimit-Remaining: 59

其表現是在 HTTP 的 Response 頭中綴上了請求次數統計


  1. X-RateLimit-Limit:60
  2. X-RateLimit-Remaining:59

從 Chrome 的 console 看,每個 API 請求都會佔用這個 limit 的限額。


  1. X-RateLimit-Limit:60
  2. X-RateLimit-Remaining:53

等過一分鐘(文件上是一分鐘,實際沒多長時間),再發送一個請求,都會發現限額已經被自動恢復。

對應的配置在 Laravel 專案檔案 app/Http/Kernel.php


  1. 'api' => [
  2. 'throttle:60,1',
  3. 'bindings',
  4. ]

所以,

  1. 第一個引數 60 代表每分鐘限制 60 次請求
  2. 第二個引數 1 代表觸發了限制規則,則1分鐘內禁止訪問

將 60 調整成 10000 基本就可以保障訪問的需求了。