v2.7.5

caddyserver/caddyv2.7.5Oct 11, 2023by github-actions[bot]

AI Summary

Bug fixes including HTTP/2 Rapid Reset mitigation, quic-go updates, and verbose logging support.

Key Highlights

  • quic-go updated to v0.39.0 with GSO and ECN enabled by default.
  • Encoder now compresses `application/wasm*` content types by default.
  • Verbose logging for reverse proxy debugging.
  • Added `caddy -v` command to check version.

New Features

  • Customizable browse template.
  • Command shortcuts `-l` and `-a`.

Full Release Notes

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` and `QUIC_GO_DISABLE_ECN=true` environment variables respectively, if they cause you problems. See the [`quic-go` release notes](https://github.com/quic-go/quic-go/releases) for more details.
- The file server's `fileserver.BrowseTemplate` is now exported, so it may be customized by programs embedding Caddy. (ed8bb13c5df7656647ca7fc1fd09237631a6767c)
- Environment variables loaded with `--envfile` no longer override existing variables. (#5803)
- The `encode` handler now compresses `application/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 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)
- You can now check the version with `caddy -v`, like most other CLI utilities! (#5874)

[Caddy is on feature freeze until after 2.8](https://github.com/caddyserver/caddy/issues/5704) 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
* 0e204b73 admin: Respond with 4xx on non-existing config path (#5870)
* 89c407aa build(deps): bump actions/checkout from 3 to 4 (#5846)
* 1405683c build(deps): bump goreleaser/goreleaser-action from 4 to 5 (#5847)
* 38a7b6b3 caddyfile: Adjust error formatting (#5765)
* 7103ea09 caddyfile: Fix case where heredoc marker is empty after newline (#5769)
* 10053f75 caddyfile: Loosen heredoc parsing (#5761)
* 58ab3a01 caddyhttp: Use LimitedReader for HTTPRedirectListener _(thank you to Bartek Nowotarski for reporting)_
* 9c419f1e cmd: Fix exiting with custom status code, add `caddy -v` (#5874)
* f2ab7099 cmd: Prevent overwriting existing env vars with `--envfile` (#5803)
* e0aaefab encode: Add `application/wasm*` to the default content types (#5869)
* fa5a579b fileserver: Add command shortcuts `-l` and `-a` (#5854)
* ed8bb13c fileserver: Export BrowseTemplate
* 130f6d1f fileserver: Set canonical URL on browse template (#5867)
* a306c5f7 fileserver: browse template SVG icons and UI tweaks (#5812)
* 0a6d3333 fileserver: docs: clarify the ability to produce JSON array with `browse` (#5751)
* 82c356f2 fix: caddytest.AssertResponseCode error message (#5853)
* 888c6d7e go.mod: Update quic-go to v0.38.0 (#5772)
* 88b4fbf2 go.mod: Upgrade dependencies incl. x/net/http
* df995029 httpcaddyfile: Enable TLS for catch-all site if `tls` directive is specified (#5808)
* 33d8d2c6 httpcaddyfile: Sort TLS SNI matcher for deterministic JSON output (#5860)
* 288216e1 httpcaddyfile: Stricter errors for site and upstream address schemes (#5757)
* 2cac3c54 httpcaddyfile: fix placeholder shorthands in named routes (#5791)
* c46ec3b5 logging: Clone array on log filters, prevent side-effects (#5786)
* 1b73e386 logging: query filter for array of strings (#5779)
* 4776f62c replacer: change timezone to UTC for "time.now.http" placeholders (#5774)
* a8586b05 reverseproxy: Add logging for dynamic A upstreams (#5857)
* 3a3182fb reverseproxy: Add more debug logs (#5793)
* 4feac4d8 reverseproxy: Allow fallthrough for response handlers without routes (#5780)
* e8b8d4a8 reverseproxy: Fix `least_conn` policy regression (#5862)
* 2a6859a5 reverseproxy: Fix retries on "upstreams unavailable" error (#5841)
* 05dbe1c1 reverseproxy: Replace health header placeholders (#5861)
* 1e0dea59 reverseproxy: fix nil pointer dereference in AUpstreams.GetUpstreams (#5811)
* b245ecd3 reverseproxy: fix parsing Caddyfile fails for unlimited request/response buffers (#5828)
* 5653c36b templates: Add dummy `RemoteAddr` to `httpInclude` request, proxy compatibility (#5845)
* 289934f3 tls: Add X25519Kyber768Draft00 PQ "curve" behind build tag (#5852)

## New Contributors
* @singhalkarun made their first contribution in https://github.com/caddyserver/caddy/pull/5757
* @pauljeannot made their first contribution in https://github.com/caddyserver/caddy/pull/5779
* @hainenber made their first contribution in https://github.com/caddyserver/caddy/pull/5790
* @evandam made their first contribution in https://github.com/caddyserver/caddy/pull/5803
* @FossoresLP made their first contribution in https://github.com/caddyserver/caddy/pull/5811
* @glowinthedark made their first contribution in https://github.com/caddyserver/caddy/pull/5812
* @pkoenig10 made their first contribution in https://github.com/caddyserver/caddy/pull/5780
* @ThanmayNath made their first contribution in https://github.com/caddyserver/caddy/pull/5845
* @Christoph-D made their first contribution in https://github.com/caddyserver/caddy/pull/5869
* @mcfedr made their first contribution in https://github.com/caddyserver/caddy/pull/5828
* @bwesterb made their first contribution in https://github.com/caddyserver/caddy/pull/5852
* @Forza-tng made their first contribution in https://github.com/caddyserver/caddy/pull/5867
* @BattleRattle made their first contribution in https://github.com/caddyserver/caddy/pull/5870

**Full Changelog**: https://github.com/caddyserver/caddy/compare/v2.7.4...v2.7.5