

<https://www.google.com/search?q=laravel+429+throttle>

Laravel はデフォルトで同一IPからの１分あたりの接続数を制限する機能があって  
それをこえると 429 too many attempts を返すようなのです

どの記事も対策として throttle をひきあげろとかいていて

app/Http/Kernel.php

[code]

    'api' => [
       'throttle:4000,1',
       'bindings',
     ],
    
[/code]

のところを 60 だったのを 600 => 1000 => 4000 と段階的にあげてデプロイしたんですが  
依然として 429 が出続けます

これまでは正確に数えたわけではないのですが 1000 までは認識されてる（429の頻度が減った)  
感じがする(少なくとも 60 => 600 の時点では確実に減った）のですが  
分間 4000 件のアクセスは確実にしていないのに依然として 429 がでてくるので  
設定値に上限があったりするのでしょうか？

[code]

    sudo cat /var/log/nginx/access.log | grep '" 429' -B 4000 | grep xxx.xxx.xxx.xxx
    
[/code]

で 429 を出してから同一IPのログを調べてみたんですが

[code]

    ログの行数　タイムスタンプ　　　　　　　　　　　ステータス
    0        [21/Aug/2019:00:11:46 +0000] 200
    325      [21/Aug/2019:00:12:04 +0000] 200
    326      [21/Aug/2019:00:12:04 +0000] 429
    599      [21/Aug/2019:00:12:46 +0000] 429
    
[/code]

このようになっていて 12:46 が最後の 429 だったのでこのタイミングでリセットされたんだろうということで  
1 分前 11:46 からのカウントをはじめて 325 件のところで 429 が出始めて  
1 分たった 600件のところで 429 がとまった(429 が 274 件でた)という感じです

ちなみにこのAPIサーバーは内向きで  
外向きのAPIサーバー６台から（＋ヘルスチェックがごく小数回）のみ接続をうけていて  
429が出るときは常に同じIPに対してのみなので６台の合計というわけでもなさそうです

サーバー内のソースもきちんと 4000 になって反映されてるし  
nginx も何度も再起動してマスタープロセス起動時間もデプロイ後の時間になってます

4000 には程遠い件数で 429 が出始めるのはなぜなんでしょうか


CC BY-SA 4.0
2019-08-21T03:05:48.047
57499
2019-08-21T03:41:13.777
2019-08-21T03:41:13.777
question
laravel
Laravel の throttle を引き上げたのに 429 がでる