v2.5.2

caddyserver/caddyv2.5.2Jul 12, 2022by github-actions[bot]

AI Summary

A patch release focusing on reverse proxy enhancements, API improvements, and bug fixes.

Key Highlights

  • New `/adapt` admin endpoint for config adaptation.
  • Added ETag/If-Match support for concurrent config API updates.
  • Improved header copying and renaming in reverse_proxy.
  • HTTP matchers added to CEL expressions.
  • Bug fixes for EAB reuse and various QUIC/HTTP/3 issues.

New Features

  • Dynamic ServerName for TLS upstreams.
  • Support for http1.1 to h2c upgrade.
  • Added `humanize` function to templates.

Full Release Notes

This patch release fixes bugs, adds some new features, and makes worthwhile enhancements. We recommend everyone test and upgrade!

Many improvements have been made to the `reverse_proxy` module.

Highlights:

- **New [`/adapt` admin endpoint](https://caddyserver.com/docs/api#post-adapt):** Use your installed config adapters via API in addition to the existing `caddy adapt` CLI command.
- **New `Etag`/`If-Match` support for config API:** Safely update your config concurrently and avoid collisions by using [our unique Etag implementation](https://caddyserver.com/docs/api#concurrent-config-changes).
- **Rename copied headers from reverse_proxy:** If you're using `handle_response`, you can more easily map headers to a different name for clients.
- **Many HTTP matchers have been added to CEL:** You can now use the logic of our HTTP request matchers in CEL expressions.
- **Notable bug fixes:** EAB reuse, various QUIC & HTTP/3 fixes, more specific HTTP status codes, various reverse proxy fixes.


## Changelog
* 660c59b6 admin: Implement /adapt endpoint (close #4465) (#4846)
* ad3a83fb admin: expect quoted ETags (#4879)
* f259ed52 admin: support ETag on config endpoints (#4579)
* 1498132e caddyhttp: Log error from CEL evaluation (fix #4832)
* 0a14f97e caddytls: Make peer certificate verification pluggable (#4389)
* 412dcc07 caddytls: Reuse issuer between PreCheck and Issue (#4866)
* 499ad6d1 core: Micro-optim in run() (#4810)
* c0f76e9e fileserver: Use safe redirects in file browser
* 58e05cab forwardauth: Fix case when `copy_headers` is omitted (#4856)
* 0b6f7643 forwardauth: Support renaming copied headers, block support (#4783)
* 8bac134f go.mod: Bump up quic-go to v0.28.0, fixes for BC breaks (#4867)
* 3d18bc56 go.mod: Update go-yaml to v3
* 56013934 go.mod: Update some dependencies
* 8e6bc360 go.mod: Upgrade some dependencies
* 53c4d788 headers: Only replace known placeholders (#4880)
* 0bcd02d5 headers: Support wildcards for delete ops (close #4830) (#4831)
* 58970cae httpcaddyfile: Add `{err.*}` placeholder shortcut (#4798)
* b687d7b9 httpcaddyfile: Support multiple values for `default_bind` (#4774)
* a9267791 reverseproxy: Add --internal-certs CLI flag #3589 (#4817)
* aaf6794b reverseproxy: Add renegotiation param in TLS client (#4784)
* 54d1923c reverseproxy: Adjust new TLS Caddyfile directive names (#4872)
* 7f9b1f43 reverseproxy: Correct the `tls_server_name` docs (#4827)
* c82fe911 reverseproxy: Dynamic ServerName for TLS upstreams (#4836)
* d6bc9e0b reverseproxy: Err 503 if all upstreams unavailable
* 98468af8 reverseproxy: Fix double headers in response handlers (#4847)
* 25f10511 reverseproxy: Fix panic when TLS is not configured (#4848)
* 5e729c1e reverseproxy: HTTP 504 for upstream timeouts (#4824)
* f9b42c37 reverseproxy: Make TLS renegotiation optional
* b6e96fa3 reverseproxy: Skip TLS for certain configured ports (#4843)
* 57d27c1b reverseproxy: Support http1.1>h2c (close #4777) (#4778)
* 9864b138 reverseproxy: api: Remove misleading 'healthy' value
* 693e9b52 rewrite: Handle fragment before query (fix #4775)
* 6891f7f4 templates: Add `humanize` function (#4767)
* 9e760e2e templates: Documentation consistency (#4796)

## New Contributors
* @nekohasekai made their first contribution in https://github.com/caddyserver/caddy/pull/4782
* @davidbgk made their first contribution in https://github.com/caddyserver/caddy/pull/4796
* @git001 made their first contribution in https://github.com/caddyserver/caddy/pull/4767
* @varianone made their first contribution in https://github.com/caddyserver/caddy/pull/4817
* @Gr33nbl00d made their first contribution in https://github.com/caddyserver/caddy/pull/4389
* @yaslama made their first contribution in https://github.com/caddyserver/caddy/pull/4784
* @kresike made their first contribution in https://github.com/caddyserver/caddy/pull/4836
* @TristonianJones made their first contribution in https://github.com/caddyserver/caddy/pull/4715
* @jhwz made their first contribution in https://github.com/caddyserver/caddy/pull/4579

**Full Changelog**: https://github.com/caddyserver/caddy/compare/v2.5.1...v2.5.2