Caddy

Caddy 2.11.7

HTTP/2 web server with automatic HTTPS

  • By Stack Holdings GmbH.
  • Open Source
  • Updated Oct 3, 2026
Download for Windows

About Caddy

HTTP/2 web server with automatic HTTPS

What's new in 2.11.7

This patch release fixes regressions from 2.11.6, including a crash when proxying over HTTP/2 and streams that were cut off after a minute. If you're on 2.11.6, we recommend upgrading. It also adds support for the brand new Incremental header field (RFC 10036).
Huge thank you to our sponsors for keeping the project alive with resources, and for our maintainers who triage and assist tirelessly in this relentless new age of AI.
Highlights
- Fixed: crash and dropped streams caused by the new idle timeouts. 2.11.6 introduced default idle read/write timeouts, which caused some problems:
- In 2.11.6, the request body's idle deadline could outlive the handler that set it:
- Over HTTP/2, Caddy could panic with a nil pointer dereference when the reverse proxy was still reading a request body after the handler had returned. (#8101)
- Over HTTP/1.1, streaming responses to requests with a body, such as SSE clients that open the stream with a POST, were cut off exactly 60 seconds after the body was read. (#8103)
Both are fixed in #8107. Thanks @steadytao!
- Over HTTP/2, streaming responses that paused between writes for longer than write_idle (1 minute by default), like quiet SSE streams, were reset with a stream error. As documented, only a write that stalls should count. Thanks @WeidiDeng! (#8118, #8119)
- Fixed: placeholders for missing cookies are empty again. Since 2.11.6, places that keep unknown placeholders as written, like respond headers, would output {http.request.cookie.*} literally when the cookie wasn't in the request. The same happened to {http.request.tls.*} on plain HTTP requests. Both are empty again. Thanks @steadytao! (#8019)
- New: support for the Incremental header field (RFC 10036). It's the standard replacement for NGINX's proprietary X-Accel-Buffering header. If an upstream response has Incremental: ?1, reverse_proxy forwards it immediately, the same as flush_interval -1, and encode streams it instead of holding it back. Great for Mercure, SSE and other streaming apps.
- If the request_buffers or response_buffers options would prevent incremental forwarding, Caddy responds with 501 Not Implemented instead of silently buffering, as the RFC requires.
- The new proxy_status_name option adds a Proxy-Status header to those responses, explaining why the message was refused.
Thanks @dunglas! (#8020) …

Full release notes »

Technical details

PublisherStack Holdings GmbH.
Version2.11.7
Release date2026-10-03
LicenseApache-2.0
Installer typezip
Architecturex64, arm64
Package IDCaddyServer.Caddy

Links & install command

Install Caddy from the command line with Windows Package Manager (winget):

winget install --id=CaddyServer.Caddy -e

acmeautomatic-httpscaddycaddyfilegogolanghacktoberfesthttphttp-serverhttp3httpsprivacyreverse-proxysecuritytlsweb-server

Older versions

  • 2.11.6
  • 2.11.4
  • 2.11.3
  • 2.11.2
  • 2.11.1
  • 2.10.2
  • 2.10.1
  • 2.10.0
  • 2.9.1