fix(api): raise uvicorn keepalive above the proxy reuse window
uvicorn's default --timeout-keep-alive is 5s, shorter than Caddy's pooled keepalive idle window, so the proxy reused connections uvicorn had just closed -> broken pipe / connection reset -> 502. The player's progress/state POSTs fire every 5s (resonant with the 5s default) and, being non-idempotent, could not be auto-retried by the proxy, so those 502s reached the user. Set --timeout-keep-alive 75 so the upstream outlives the proxy's reuse.
This commit is contained in:
parent
d5e4f5353e
commit
02a6e5ff94
1 changed files with 6 additions and 1 deletions
|
|
@ -5,4 +5,9 @@ echo "Applying database migrations..."
|
||||||
alembic upgrade head
|
alembic upgrade head
|
||||||
|
|
||||||
echo "Starting Siftlode API..."
|
echo "Starting Siftlode API..."
|
||||||
exec uvicorn app.main:app --host 0.0.0.0 --port 8000 --log-config log_config.json
|
# --timeout-keep-alive 75: keep idle upstream connections alive longer than the reverse
|
||||||
|
# proxy's idle-reuse window. uvicorn's default (5s) is shorter than Caddy's pooled-keepalive
|
||||||
|
# timeout, so Caddy would reuse a connection uvicorn had just closed -> broken pipe / reset
|
||||||
|
# on the next request -> 502. Non-idempotent POSTs (the player's progress/state writes,
|
||||||
|
# fired every 5s) can't be auto-retried by the proxy, so those 502s reached the user.
|
||||||
|
exec uvicorn app.main:app --host 0.0.0.0 --port 8000 --log-config log_config.json --timeout-keep-alive 75
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue