Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
In this version we've made several fixes and enhancements with help from several contributors. Most changes are small, but some notable ones:
templates
middleware is now officially extensible (experimentally). This means modules can add custom functions/actions for templates to execute.Thank you to everyone who contributed!
:
(#5883)scheme
placeholder docs (#5910)include
args docs, add .ClientIP
(#5898)httpError
to reset to clean slate (#5905)Full Changelog: https://github.com/caddyserver/caddy/compare/v2.7.5...v2.7.6
In this release, we've fixed quite a few small bugs and annoyances, including HTTP/2 Rapid Reset which affected most HTTP/2 implementations.
On a personal note (from @mholt): I recently became a dad! I want to thank our maintainers for helping in so many ways while I've been taking extra time for family. Francis, Matthew, Mohammed, and others -- including all the contributors below, and then some -- are to thank for shipping this release.
QUIC_GO_DISABLE_GSO=true
and QUIC_GO_DISABLE_ECN=true
environment variables respectively, if they cause you problems. See the quic-go
release notes for more details.fileserver.BrowseTemplate
is now exported, so it may be customized by programs embedding Caddy. (ed8bb13c5df7656647ca7fc1fd09237631a6767c)--envfile
no longer override existing variables. (#5803)encode
handler now compresses application/wasm*
content types by default. (#5869)reverse_proxy
handler can now emit very detailed logs for debugging streaming and buffering. To enable it, set the verbose_logs
subdirective, and set logging to debug
level. Since the logs from this are very noisy, using verbose_logs
to opt-in is necessary. We may ask you to enable this when asking for support! (#5793)caddy -v
, like most other CLI utilities! (#5874)Caddy is on feature freeze until after 2.8 so we can improve our testing situation. These patches have all been tried to ensure they work as intended, but if you notice any issues please report them!
caddy -v
(#5874)--envfile
(#5803)application/wasm*
to the default content types (#5869)-l
and -a
(#5854)browse
(#5751)tls
directive is specified (#5808)least_conn
policy regression (#5862)RemoteAddr
to httpInclude
request, proxy compatibility (#5845)Full Changelog: https://github.com/caddyserver/caddy/compare/v2.7.4...v2.7.5
Caddy 2.7.4 rounds out some bug fixes from the 2.7 release. For example, Go made a last-minute breaking change to a new API that broke quic-go (HTTP/3) on Go 1.21 just before Go 1.21 was released; we resolved a few issues with on-demand TLS that are now much improved from the 2.6 tree; a couple race conditions were fixed in dynamic reverse proxy upstreams. We hope you will be pleased with this new version!
Caddy is on feature freeze until after 2.8 so we can improve our testing situation. These patches have all been tried to ensure they work as intended, but if you notice any issues please report them!
We encourage all users to test this new version and then upgrade. Thanks to all who get involved!
Full Changelog: https://github.com/caddyserver/caddy/compare/v2.7.3...v2.7.4
We're pleased to present Caddy 2.7, which makes significant strides in areas of scaling, performance, and niche features.
Special thank-you to @francislavoie, @Mohammed90, and other core team members for the ongoing dedication of their time to help maintain the project and help in our forums.
And a big thank-you to everyone else who contributed! You're awesome, and we're glad this project has so many contributors and sponsors to make it possible.
Docs are being updated and will be pushed live shortly. Thank you for your patience and for using Caddy!
(Note: Versions 2.7.0-2.7.2 contain bugs that were hotfixed within minutes and hours and a day of the release. Thank you to everyone who helped with that! And sorry for the trouble, we have learned lessons to help mitigate that in the future.)
{args[2:]}
(#5249)Deprecations and possible breaking changes for some:
ask
endpoint is now required to enable On-Demand TLS (b97c76fb4789b8da0b80f5a2c1c1c5bebba163b5) for catch-all or wildcard hosts. Our docs have always mentioned this is required in production environments, but now the code enforces it. The ask
endpoint is not required for local-only or internal-only names (#5384 and a7af7c486e5240da974e02b7dfee9d265aaa654a).lookup_srv
feature of the reverse proxy has been removed. It was replaced with the dynamic upstreams feature in 2.6. (#5396)remote_ip forwarded
matcher has been deprecated because it assumes trusting downstream proxies. Instead, the client_ip
matcher should be used along with trusted_proxies
configuration. (#5103 and #5104){args.0}
is now deprecated in favor of {args[0]}
.http.ResponseController
to call Flush()
or Hijack()
on the response writer. (#5654)Thank you to everyone who contributed! And thank you to our sponsors who truly make this project possible.
Full Changelog: https://github.com/caddyserver/caddy/compare/v2.6.4...v2.7.3
resolvers
, fix smallstep deprecations (#5500)vars_regexp
matcher with placeholders (#5408)ResponseWriter.Unwrap()
, prep for Go 1.20's ResponseController
(#5509)invoke
directive (#5107)http.ResponseController
(#5654)pkix.Name
conversion to string (#5492)'
quotes in envfile parsing (#5437)caddy fmt
hints more clear (#5378)AppIfConfigured
(#5397)chmod
for abstract unix sockets (#5596)capture_stderr
(#5515)export-template
sub-command to file-server
(#5630)>
to defer shortcut for replacements (#5574)hostnames
& logger name overrides for log directive (#5643)string does not match ~[]E
error (#5675)reverse_proxy
, add HTTP listener wrapper (#5424)fallback
for some policies, instead of always random (#5488)query
and client_ip_hash
lb policies (#5468)lookup_srv
(#5396)a
upstream (#5401)tls_except_port
for active health checks (#5591)fileStat
function (#5497)readFile
action that does not evaluate templates (#5553)Do not use this release, use v2.7.3 instead which contains several hot fixes.
Do not use this release; use v2.7.3 instead. It contains a hotfix for a WebSocket issue.
Do not use this release, use v2.7.3 instead which contains hot fixes.
This release is obsolete. Please see the next release for the notes.
This release is obsolete. Please see the next release for notes.
This release contains a hotfix for a regression in v2.6.3 related to proxying chunked requests. We recommend that all users who do so upgrade to v2.6.4.
Note that, in an effort to make error-prone configs less likely, we have deprecated the reverse proxy options:
buffer_requests
buffer_responses
max_buffer_size
and have introduced 2 new ones which take a size argument to enable buffering:
request_buffers <size>
response_buffers <size>
The deprecated options will be removed in a later version of Caddy, so please start using the new parameters instead.