New Features
-
Official Docker Image: Gunicorn now publishes official Docker images to GitHub Container Registry (PR #3454)
- Available at
ghcr.io/benoitc/gunicorn - Based on Python 3.12 slim image
- Uses recommended worker formula (2 × CPU + 1)
- Configurable via environment variables
- Available at
-
PROXY Protocol v2 Support: Extended PROXY protocol implementation to support the binary v2 format in addition to the existing text-based v1 format (PR #3451)
- New
--proxy-protocolmodes:off,v1,v2,auto automode (default when enabled) detects v1 or v2 automatically- v2 binary format is more efficient and supports additional metadata
- Works with HAProxy, AWS NLB/ALB, and other PROXY protocol v2 sources
- New
-
CIDR Network Support:
--forwarded-allow-ipsand--proxy-allow-fromnow accept CIDR notation (e.g.,192.168.0.0/16) for specifying trusted networks (PR #3449) -
Socket Backlog Metric: New
gunicorn.socket.backloggauge metric reports the current socket backlog size on Linux systems (PR #3450) -
InotifyReloader Enhancement: The inotify-based reloader now watches newly imported modules, not just those loaded at startup (PR #3447)
Bug Fixes
- Fix signal handling regression where SIGCLD alias caused "Unhandled signal: cld" errors on Linux when workers fail during boot (#3453)
- Fix socket blocking mode on keepalive connections preventing SSL handshake failures with async workers (PR #3452)
- Use smaller buffer size in
finish_body()for faster timeout detection on slow or abandoned connections (PR #3453) - Handle
SSLWantReadErrorinfinish_body()to prevent worker hangs during SSL renegotiation (PR #3448) - Log SIGTERM as info level instead of warning to reduce noise in orchestrated environments (PR #3446)
- Print exception details to stderr when worker fails to boot (PR #3443)
- Fix
unreader.unread()to prepend data to buffer instead of appending (PR #3442) - Prevent
RecursionErrorwhen pickling Config objects (PR #3441) - Use proper exception chaining with
raise fromin glogging.py (PR #3440)
Installation
pip install gunicorn==24.1.0Or use the official Docker image:
docker pull ghcr.io/benoitc/gunicorn:24.1.0