mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-29 01:02:25 -05:00
[feature] HTTP request throttling middleware (#1297)
* [feature] Add throttling middleware to AP endpoints * refactor a lil bit * use config setting, start updating docs * doc updates * use relative links in faq doc * small docs fixes * return code 503 instead of 429 when throttled * throttle other endpoints too * simplify token channel prefills
This commit is contained in:
parent
0b8eafec5c
commit
90a14abb0c
16 changed files with 313 additions and 27 deletions
|
|
@ -644,9 +644,6 @@ advanced-cookies-samesite: "lax"
|
|||
# Int. Amount of requests to permit per router grouping from a single IP address within
|
||||
# a span of 5 minutes. If this amount is exceeded, a 429 HTTP error code will be returned.
|
||||
#
|
||||
# Router groupings and rate limit headers are described here:
|
||||
# https://docs.gotosocial.org/en/latest/api/swagger/#rate-limit.
|
||||
#
|
||||
# If you find yourself adjusting this limit because it's regularly being exceeded,
|
||||
# you should first verify that your settings for `trusted-proxies` (above) are correct.
|
||||
# In many cases, when the rate limit is exceeded it is because your instance sees all
|
||||
|
|
@ -659,3 +656,31 @@ advanced-cookies-samesite: "lax"
|
|||
# Examples: [1000, 500, 0]
|
||||
# Default: 300
|
||||
advanced-rate-limit-requests: 300
|
||||
|
||||
# Int. Amount of open requests to permit per CPU, per router grouping, before applying http
|
||||
# request throttling. Any requests beyond the calculated limit are held in a backlog queue for
|
||||
# up to 30 seconds before either being processed or timing out. Requests that don't fit in the backlog
|
||||
# queue will have status 503 returned to them, and the header 'Retry-After' will be set to 30 seconds.
|
||||
#
|
||||
# Open request limit is available CPUs * multiplier; backlog queue limit is limit * multiplier.
|
||||
#
|
||||
# Example values for multiplier 8:
|
||||
#
|
||||
# 1 cpu = 08 open, 064 backlog
|
||||
# 2 cpu = 16 open, 128 backlog
|
||||
# 4 cpu = 32 open, 256 backlog
|
||||
#
|
||||
# Example values for multiplier 4:
|
||||
#
|
||||
# 1 cpu = 04 open, 016 backlog
|
||||
# 2 cpu = 08 open, 032 backlog
|
||||
# 4 cpu = 16 open, 064 backlog
|
||||
#
|
||||
# A multiplier of 8 is a sensible default, but you may wish to increase this for instances
|
||||
# running on very performant hardware, or decrease it for instances using v. slow CPUs.
|
||||
#
|
||||
# If you set this to 0 or less, http request throttling will be disabled entirely.
|
||||
#
|
||||
# Examples: [8, 4, 9, 0]
|
||||
# Default: 8
|
||||
advanced-throttling-multiplier: 8
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue