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.
Highlights
- Updated https://github.com/quic-go/quic-go from v0.37.5 to v0.39.0, including many performance improvements. GSO and ECN are now enabled by default, but you may turn them off by setting the
QUIC_GO_DISABLE_GSO=true
andQUIC_GO_DISABLE_ECN=true
environment variables respectively, if they cause you problems. See thequic-go
release notes for more details. - The file server's
fileserver.BrowseTemplate
is now exported, so it may be customized by programs embedding Caddy. (ed8bb13) - Environment variables loaded with
--envfile
no longer override existing variables. (#5803) - The
encode
handler now compressesapplication/wasm*
content types by default. (#5869) - The
reverse_proxy
handler can now emit very detailed logs for debugging streaming and buffering. To enable it, set theverbose_logs
subdirective, and set logging todebug
level. Since the logs from this are very noisy, usingverbose_logs
to opt-in is necessary. We may ask you to enable this when asking for support! (#5793) - You can now check the version with
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!
Changelog
- 0e204b7 admin: Respond with 4xx on non-existing config path (#5870)
- 89c407a build(deps): bump actions/checkout from 3 to 4 (#5846)
- 1405683 build(deps): bump goreleaser/goreleaser-action from 4 to 5 (#5847)
- 38a7b6b caddyfile: Adjust error formatting (#5765)
- 7103ea0 caddyfile: Fix case where heredoc marker is empty after newline (#5769)
- 10053f7 caddyfile: Loosen heredoc parsing (#5761)
- 58ab3a0 caddyhttp: Use LimitedReader for HTTPRedirectListener (thank you to Bartek Nowotarski for reporting)
- 9c419f1 cmd: Fix exiting with custom status code, add
caddy -v
(#5874) - f2ab709 cmd: Prevent overwriting existing env vars with
--envfile
(#5803) - e0aaefa encode: Add
application/wasm*
to the default content types (#5869) - fa5a579 fileserver: Add command shortcuts
-l
and-a
(#5854) - ed8bb13 fileserver: Export BrowseTemplate
- 130f6d1 fileserver: Set canonical URL on browse template (#5867)
- a306c5f fileserver: browse template SVG icons and UI tweaks (#5812)
- 0a6d333 fileserver: docs: clarify the ability to produce JSON array with
browse
(#5751) - 82c356f fix: caddytest.AssertResponseCode error message (#5853)
- 888c6d7 go.mod: Update quic-go to v0.38.0 (#5772)
- 88b4fbf go.mod: Upgrade dependencies incl. x/net/http
- df99502 httpcaddyfile: Enable TLS for catch-all site if
tls
directive is specified (#5808) - 33d8d2c httpcaddyfile: Sort TLS SNI matcher for deterministic JSON output (#5860)
- 288216e httpcaddyfile: Stricter errors for site and upstream address schemes (#5757)
- 2cac3c5 httpcaddyfile: fix placeholder shorthands in named routes (#5791)
- c46ec3b logging: Clone array on log filters, prevent side-effects (#5786)
- 1b73e38 logging: query filter for array of strings (#5779)
- 4776f62 replacer: change timezone to UTC for "time.now.http" placeholders (#5774)
- a8586b0 reverseproxy: Add logging for dynamic A upstreams (#5857)
- 3a3182f reverseproxy: Add more debug logs (#5793)
- 4feac4d reverseproxy: Allow fallthrough for response handlers without routes (#5780)
- e8b8d4a reverseproxy: Fix
least_conn
policy regression (#5862) - 2a6859a reverseproxy: Fix retries on "upstreams unavailable" error (#5841)
- 05dbe1c reverseproxy: Replace health header placeholders (#5861)
- 1e0dea5 reverseproxy: fix nil pointer dereference in AUpstreams.GetUpstreams (#5811)
- b245ecd reverseproxy: fix parsing Caddyfile fails for unlimited request/response buffers (#5828)
- 5653c36 templates: Add dummy
RemoteAddr
tohttpInclude
request, proxy compatibility (#5845) - 289934f tls: Add X25519Kyber768Draft00 PQ "curve" behind build tag (#5852)
New Contributors
- @singhalkarun made their first contribution in #5757
- @pauljeannot made their first contribution in #5779
- @hainenber made their first contribution in #5790
- @evandam made their first contribution in #5803
- @FossoresLP made their first contribution in #5811
- @glowinthedark made their first contribution in #5812
- @pkoenig10 made their first contribution in #5780
- @ThanmayNath made their first contribution in #5845
- @Christoph-D made their first contribution in #5869
- @mcfedr made their first contribution in #5828
- @bwesterb made their first contribution in #5852
- @Forza-tng made their first contribution in #5867
- @BattleRattle made their first contribution in #5870
Full Changelog: v2.7.4...v2.7.5