v2.9.0-beta.2
版本发布时间: 2024-10-03 06:33:58
caddyserver/caddy最新发布版本:v2.9.1(2025-01-08 23:22:53)
We're pleased to start the early previews of Caddy 2.9! While in beta, new features and changes may be unstable, so please test in suitable environments that may expose issues so we can fix them before the stable release.
While there are some features in this release (such as socket-activation-listeners), we've focused mainly on refinements and bug fixes in many areas, including:
- Config loading
- Events
- Logging
- Placeholders
- Reverse proxy and HTTP server performance
- Matchers
- HTTP (esp. HTTP/3)
- Metrics (per-host metrics)
We hope you will enjoy the 2.9 beta releases. Please try them out and report bugs! There is still more to come before the stable 2.9.0 release!
Thanks to all contributors, bug reporters, and helpers.
(Our first beta release is called beta 2 because beta 1 had a CI malfunction, and the Go module proxy won't let us reuse tags for security reasons.)
What's Changed
- Make it possible to configure the
DisableStorageCheck
setting for certmagic by @ankon in https://github.com/caddyserver/caddy/pull/6368 - caddyhttp: Add test case to corpus by @mholt in https://github.com/caddyserver/caddy/pull/6374
- cmd: remove zealous check of Caddyfile auto-detection by @mohammed90 in https://github.com/caddyserver/caddy/pull/6370
- ci: upgrade to goreleaser v2 by @mohammed90 in https://github.com/caddyserver/caddy/pull/6376
- logging: Allow setting log file permissions by @ririsoft in https://github.com/caddyserver/caddy/pull/6314
- Split
run
into a publicBuildContext
and a private part by @ankon in https://github.com/caddyserver/caddy/pull/6378 - Write the header if none had been written in WriteResponse by @ankon in https://github.com/caddyserver/caddy/pull/6380
- fix file mode configuration parsing by @ririsoft in https://github.com/caddyserver/caddy/pull/6383
- go.mod: update tscert package by @willnorris in https://github.com/caddyserver/caddy/pull/6384
- logging: Customizable
zapcore.Core
by @kkroo in https://github.com/caddyserver/caddy/pull/6381 - logging: set file mode when the file already exist. by @ririsoft in https://github.com/caddyserver/caddy/pull/6391
- caddyfile: Pass blocks to
import
for snippets by @elee1766 in https://github.com/caddyserver/caddy/pull/6130 - reverseproxy: add Max-Age option to sticky cookie by @JasonYuan869 in https://github.com/caddyserver/caddy/pull/6398
- fileserver: Remove newline characters from precomputed etags by @armadi1809 in https://github.com/caddyserver/caddy/pull/6394
- fix: http.intercept.header.* placeholders by @dunglas in https://github.com/caddyserver/caddy/pull/6429
- reverseproxy: Only log host is up status on change by @klaxa in https://github.com/caddyserver/caddy/pull/6419
- fix: don't compress already compressed fonts by @dunglas in https://github.com/caddyserver/caddy/pull/6432
- caddyhttp: Reject 0-RTT early data in IP matchers and set Early-Data header when proxying by @mholt in https://github.com/caddyserver/caddy/pull/6427
- reverseproxy: Add placeholder for host in active health check headers by @francislavoie in https://github.com/caddyserver/caddy/pull/6440
- browse: add Content-Security-Policy w/ nonce by @steffenbusch in https://github.com/caddyserver/caddy/pull/6425
- browse: fix Content-Security-Policy warnings in Firefox by @steffenbusch in https://github.com/caddyserver/caddy/pull/6443
- fileserver: Exclude symlink target size from total, show arrow on size by @francislavoie in https://github.com/caddyserver/caddy/pull/6412
- reverseproxy: Fix dynamic upstreams ip version by @armadi1809 in https://github.com/caddyserver/caddy/pull/6448
- reverseproxy: Add placeholder for networkAddr in active health check headers by @dylanschultzie in https://github.com/caddyserver/caddy/pull/6450
- Add option to set which HTTP method to use for active health checks by @jbro in https://github.com/caddyserver/caddy/pull/6453
- reverseproxy: Caddyfile support for health_method by @jbro in https://github.com/caddyserver/caddy/pull/6454
- reverseproxy: add health_upstream subdirective by @dylanschultzie in https://github.com/caddyserver/caddy/pull/6451
- ci: correct
-tags nobadger
on binary build by @girlbossceo in https://github.com/caddyserver/caddy/pull/6470 - Caddyfile support for TLS handshake matchers by @vnxme in https://github.com/caddyserver/caddy/pull/6461
- Caddyfile support for TLS connection and certificate selection policies by @vnxme in https://github.com/caddyserver/caddy/pull/6462
- chore: update golangci config by @mohammed90 in https://github.com/caddyserver/caddy/pull/6479
- encode: flush already compressed data to the stream by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6471
- proxyprotocol: Update WrapListener to use ConnPolicyFunc for PROXY protocol by @pi-prakhar in https://github.com/caddyserver/caddy/pull/6485
- fileserver: add
sort
options by @lollipopkit in https://github.com/caddyserver/caddy/pull/6468 - go.mod: update quic-go package by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6498
- Runtime placeholders for selected TLS and HTTP matchers by @vnxme in https://github.com/caddyserver/caddy/pull/6480
- replacer:
{file.*}
global placeholder strips trailing newline by @steffenbusch in https://github.com/caddyserver/caddy/pull/6411 - go.mod: update update golang/x/net by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6500
- reverse_proxy: apply keep-alive setting for h2c requests by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6343
- Fix a regression in #6480: the context may have no replacer by @vnxme in https://github.com/caddyserver/caddy/pull/6510
- caddyhttp: Export PrivateRangesCIDR() for plugins after #6480 by @vnxme in https://github.com/caddyserver/caddy/pull/6514
- ignore exec.ErrDot when starting caddy in background by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6512
- ci: don't exit early on error in remote CI machine by @mohammed90 in https://github.com/caddyserver/caddy/pull/6519
- reverseproxy: Active health checks request body option by @jbro in https://github.com/caddyserver/caddy/pull/6520
- reverseproxy: Change logs for write errors to warn level by @jum in https://github.com/caddyserver/caddy/pull/6532
- cmd: Use a factory to create the caddy root command by @elee1766 in https://github.com/caddyserver/caddy/pull/6533
- chore: Fix a typo by @sunnyagain in https://github.com/caddyserver/caddy/pull/6534
- error: run
error
(msg) through replacer by @mohammed90 in https://github.com/caddyserver/caddy/pull/6536 - reverseproxy: allow user to define source address by @mohammed90 in https://github.com/caddyserver/caddy/pull/6504
- chore: build and test with Go 1.23 by @dunglas in https://github.com/caddyserver/caddy/pull/6526
- tls: use Go default kex for the moment that include PQC by @bwesterb in https://github.com/caddyserver/caddy/pull/6542
- ci: prepare syso files for windows embedding in release by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6406
- Performance: Prevents the zap logger from serializing the request in rewrite.go. by @AlliBalliBaba in https://github.com/caddyserver/caddy/pull/6541
- fileserver: move
sort
tobrowse
by @lollipopkit in https://github.com/caddyserver/caddy/pull/6502 - reverse_proxy: add placeholder http.reverse_proxy.retries by @steffenbusch in https://github.com/caddyserver/caddy/pull/6553
- fix(#6551): Unexpected behaviour if caddyhttp.Route is provisioned twice by @jbro in https://github.com/caddyserver/caddy/pull/6558
- caddytls: Add sni_regexp matcher by @vnxme in https://github.com/caddyserver/caddy/pull/6569
- rewrite: Avoid panic on bad arg count for
uri
by @mister-turtle in https://github.com/caddyserver/caddy/pull/6571 - perf: use zap's Check() to prevent useless allocs by @dunglas in https://github.com/caddyserver/caddy/pull/6560
- ci: update the linter action version by @mohammed90 in https://github.com/caddyserver/caddy/pull/6575
- update quic-go to v0.47.0 by @marten-seemann in https://github.com/caddyserver/caddy/pull/6582
- quic: enable qlog, controlled by QLOGDIR env by @marten-seemann in https://github.com/caddyserver/caddy/pull/6581
- caddytls: Give a better error message when given encrypted private keys by @francislavoie in https://github.com/caddyserver/caddy/pull/6591
- chore: Use slices package where possible by @francislavoie in https://github.com/caddyserver/caddy/pull/6585
- caddyhttp: Optimize logs using zap's WithLazy() by @AlliBalliBaba in https://github.com/caddyserver/caddy/pull/6590
- doc: remove docs of deprecated directives by @mohammed90 in https://github.com/caddyserver/caddy/pull/6566
- Implement issue #6296 passing FDs / socket activation by @MayCXC in https://github.com/caddyserver/caddy/pull/6573
- caddyhttp: Fix listener wrapper regression from #6573 by @MayCXC in https://github.com/caddyserver/caddy/pull/6599
- chore: Adjust incorrect
reverse_proxy
Caddyfile comment by @francislavoie in https://github.com/caddyserver/caddy/pull/6598 - http: ReponseWriter prefer ReadFrom if available by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6565
- caddytls: Support new tls.context module by @mholt in https://github.com/caddyserver/caddy/pull/6369
- Better errors when reloading by @mholt in https://github.com/caddyserver/caddy/pull/6601
- caddyhttp: Escaping placeholders in CEL, add
vars
andvars_regexp
by @francislavoie in https://github.com/caddyserver/caddy/pull/6594 - autohttps: Implement
auto_https prefer_wildcard
option by @francislavoie in https://github.com/caddyserver/caddy/pull/6146 - metrics: scope metrics to active config, add optional per-host metrics by @mohammed90 in https://github.com/caddyserver/caddy/pull/6531
- ci: install xcaddy to fix release flow by @mohammed90 in https://github.com/caddyserver/caddy/pull/6602
New Contributors
- @ririsoft made their first contribution in https://github.com/caddyserver/caddy/pull/6314
- @JasonYuan869 made their first contribution in https://github.com/caddyserver/caddy/pull/6398
- @klaxa made their first contribution in https://github.com/caddyserver/caddy/pull/6419
- @dylanschultzie made their first contribution in https://github.com/caddyserver/caddy/pull/6450
- @jbro made their first contribution in https://github.com/caddyserver/caddy/pull/6453
- @girlbossceo made their first contribution in https://github.com/caddyserver/caddy/pull/6470
- @vnxme made their first contribution in https://github.com/caddyserver/caddy/pull/6461
- @pi-prakhar made their first contribution in https://github.com/caddyserver/caddy/pull/6485
- @lollipopkit made their first contribution in https://github.com/caddyserver/caddy/pull/6468
- @sunnyagain made their first contribution in https://github.com/caddyserver/caddy/pull/6534
- @AlliBalliBaba made their first contribution in https://github.com/caddyserver/caddy/pull/6541
- @mister-turtle made their first contribution in https://github.com/caddyserver/caddy/pull/6571
- @MayCXC made their first contribution in https://github.com/caddyserver/caddy/pull/6573
Full Changelog: https://github.com/caddyserver/caddy/compare/v2.8.4...v2.9.0-beta.2
1、 caddy_2.9.0-beta.2_buildable-artifact.pem 3.15KB
2、 caddy_2.9.0-beta.2_buildable-artifact.tar.gz 9.99MB
3、 caddy_2.9.0-beta.2_buildable-artifact.tar.gz.sig 96B
4、 caddy_2.9.0-beta.2_checksums.txt 7.84KB
5、 caddy_2.9.0-beta.2_checksums.txt.pem 3.15KB
6、 caddy_2.9.0-beta.2_checksums.txt.sig 96B
7、 caddy_2.9.0-beta.2_freebsd_amd64.pem 3.16KB
8、 caddy_2.9.0-beta.2_freebsd_amd64.sbom 117.47KB
9、 caddy_2.9.0-beta.2_freebsd_amd64.sbom.pem 3.15KB
10、 caddy_2.9.0-beta.2_freebsd_amd64.sbom.sig 96B
11、 caddy_2.9.0-beta.2_freebsd_amd64.tar.gz 14.23MB
12、 caddy_2.9.0-beta.2_freebsd_amd64.tar.gz.sig 96B
13、 caddy_2.9.0-beta.2_freebsd_arm64.pem 3.15KB
14、 caddy_2.9.0-beta.2_freebsd_arm64.sbom 117.47KB
15、 caddy_2.9.0-beta.2_freebsd_arm64.sbom.pem 3.16KB
16、 caddy_2.9.0-beta.2_freebsd_arm64.sbom.sig 96B
17、 caddy_2.9.0-beta.2_freebsd_arm64.tar.gz 13.13MB
18、 caddy_2.9.0-beta.2_freebsd_arm64.tar.gz.sig 96B
19、 caddy_2.9.0-beta.2_freebsd_armv6.pem 3.15KB
20、 caddy_2.9.0-beta.2_freebsd_armv6.sbom 117.23KB
21、 caddy_2.9.0-beta.2_freebsd_armv6.sbom.pem 3.15KB
22、 caddy_2.9.0-beta.2_freebsd_armv6.sbom.sig 96B
23、 caddy_2.9.0-beta.2_freebsd_armv6.tar.gz 13.36MB
24、 caddy_2.9.0-beta.2_freebsd_armv6.tar.gz.sig 96B
25、 caddy_2.9.0-beta.2_freebsd_armv7.pem 3.15KB
26、 caddy_2.9.0-beta.2_freebsd_armv7.sbom 117.23KB
27、 caddy_2.9.0-beta.2_freebsd_armv7.sbom.pem 3.15KB
28、 caddy_2.9.0-beta.2_freebsd_armv7.sbom.sig 96B
29、 caddy_2.9.0-beta.2_freebsd_armv7.tar.gz 13.33MB
30、 caddy_2.9.0-beta.2_freebsd_armv7.tar.gz.sig 96B
31、 caddy_2.9.0-beta.2_linux_amd64.deb 14.35MB
32、 caddy_2.9.0-beta.2_linux_amd64.deb.pem 3.15KB
33、 caddy_2.9.0-beta.2_linux_amd64.deb.sig 96B
34、 caddy_2.9.0-beta.2_linux_amd64.pem 3.16KB
35、 caddy_2.9.0-beta.2_linux_amd64.sbom 117.47KB
36、 caddy_2.9.0-beta.2_linux_amd64.sbom.pem 3.15KB
37、 caddy_2.9.0-beta.2_linux_amd64.sbom.sig 96B
38、 caddy_2.9.0-beta.2_linux_amd64.tar.gz 14.27MB
39、 caddy_2.9.0-beta.2_linux_amd64.tar.gz.sig 96B
40、 caddy_2.9.0-beta.2_linux_arm64.deb 13.26MB
41、 caddy_2.9.0-beta.2_linux_arm64.deb.pem 3.16KB
42、 caddy_2.9.0-beta.2_linux_arm64.deb.sig 96B
43、 caddy_2.9.0-beta.2_linux_arm64.pem 3.15KB
44、 caddy_2.9.0-beta.2_linux_arm64.sbom 117.47KB
45、 caddy_2.9.0-beta.2_linux_arm64.sbom.pem 3.15KB
46、 caddy_2.9.0-beta.2_linux_arm64.sbom.sig 96B
47、 caddy_2.9.0-beta.2_linux_arm64.tar.gz 13.18MB
48、 caddy_2.9.0-beta.2_linux_arm64.tar.gz.sig 96B
49、 caddy_2.9.0-beta.2_linux_armv5.deb 13.47MB
50、 caddy_2.9.0-beta.2_linux_armv5.deb.pem 3.15KB
51、 caddy_2.9.0-beta.2_linux_armv5.deb.sig 96B
52、 caddy_2.9.0-beta.2_linux_armv5.pem 3.16KB
53、 caddy_2.9.0-beta.2_linux_armv5.sbom 117.23KB
54、 caddy_2.9.0-beta.2_linux_armv5.sbom.pem 3.16KB
55、 caddy_2.9.0-beta.2_linux_armv5.sbom.sig 96B
56、 caddy_2.9.0-beta.2_linux_armv5.tar.gz 13.41MB
57、 caddy_2.9.0-beta.2_linux_armv5.tar.gz.sig 96B
58、 caddy_2.9.0-beta.2_linux_armv6.deb 13.46MB
59、 caddy_2.9.0-beta.2_linux_armv6.deb.pem 3.15KB
60、 caddy_2.9.0-beta.2_linux_armv6.deb.sig 96B
61、 caddy_2.9.0-beta.2_linux_armv6.pem 3.15KB
62、 caddy_2.9.0-beta.2_linux_armv6.sbom 117.23KB
63、 caddy_2.9.0-beta.2_linux_armv6.sbom.pem 3.16KB
64、 caddy_2.9.0-beta.2_linux_armv6.sbom.sig 96B
65、 caddy_2.9.0-beta.2_linux_armv6.tar.gz 13.41MB
66、 caddy_2.9.0-beta.2_linux_armv6.tar.gz.sig 96B
67、 caddy_2.9.0-beta.2_linux_armv7.deb 13.44MB
68、 caddy_2.9.0-beta.2_linux_armv7.deb.pem 3.15KB
69、 caddy_2.9.0-beta.2_linux_armv7.deb.sig 96B
70、 caddy_2.9.0-beta.2_linux_armv7.pem 3.15KB
71、 caddy_2.9.0-beta.2_linux_armv7.sbom 117.23KB
72、 caddy_2.9.0-beta.2_linux_armv7.sbom.pem 3.16KB
73、 caddy_2.9.0-beta.2_linux_armv7.sbom.sig 96B
74、 caddy_2.9.0-beta.2_linux_armv7.tar.gz 13.38MB
75、 caddy_2.9.0-beta.2_linux_armv7.tar.gz.sig 96B
76、 caddy_2.9.0-beta.2_linux_ppc64le.deb 13.02MB
77、 caddy_2.9.0-beta.2_linux_ppc64le.deb.pem 3.15KB
78、 caddy_2.9.0-beta.2_linux_ppc64le.deb.sig 96B
79、 caddy_2.9.0-beta.2_linux_ppc64le.pem 3.15KB
80、 caddy_2.9.0-beta.2_linux_ppc64le.sbom 117.71KB
81、 caddy_2.9.0-beta.2_linux_ppc64le.sbom.pem 3.15KB
82、 caddy_2.9.0-beta.2_linux_ppc64le.sbom.sig 96B
83、 caddy_2.9.0-beta.2_linux_ppc64le.tar.gz 12.95MB
84、 caddy_2.9.0-beta.2_linux_ppc64le.tar.gz.sig 96B
85、 caddy_2.9.0-beta.2_linux_riscv64.deb 13.56MB
86、 caddy_2.9.0-beta.2_linux_riscv64.deb.pem 3.15KB
87、 caddy_2.9.0-beta.2_linux_riscv64.deb.sig 96B
88、 caddy_2.9.0-beta.2_linux_riscv64.pem 3.15KB
89、 caddy_2.9.0-beta.2_linux_riscv64.sbom 117.71KB
90、 caddy_2.9.0-beta.2_linux_riscv64.sbom.pem 3.15KB
91、 caddy_2.9.0-beta.2_linux_riscv64.sbom.sig 96B
92、 caddy_2.9.0-beta.2_linux_riscv64.tar.gz 13.48MB
93、 caddy_2.9.0-beta.2_linux_riscv64.tar.gz.sig 96B
94、 caddy_2.9.0-beta.2_linux_s390x.deb 13.88MB
95、 caddy_2.9.0-beta.2_linux_s390x.deb.pem 3.15KB
96、 caddy_2.9.0-beta.2_linux_s390x.deb.sig 96B
97、 caddy_2.9.0-beta.2_linux_s390x.pem 3.16KB
98、 caddy_2.9.0-beta.2_linux_s390x.sbom 117.36KB
99、 caddy_2.9.0-beta.2_linux_s390x.sbom.pem 3.15KB
100、 caddy_2.9.0-beta.2_linux_s390x.sbom.sig 96B
101、 caddy_2.9.0-beta.2_linux_s390x.tar.gz 13.78MB
102、 caddy_2.9.0-beta.2_linux_s390x.tar.gz.sig 96B
103、 caddy_2.9.0-beta.2_mac_amd64.pem 3.15KB
104、 caddy_2.9.0-beta.2_mac_amd64.sbom 118.26KB
105、 caddy_2.9.0-beta.2_mac_amd64.sbom.pem 3.15KB
106、 caddy_2.9.0-beta.2_mac_amd64.sbom.sig 96B
107、 caddy_2.9.0-beta.2_mac_amd64.tar.gz 14.61MB
108、 caddy_2.9.0-beta.2_mac_amd64.tar.gz.sig 96B
109、 caddy_2.9.0-beta.2_mac_arm64.pem 3.15KB
110、 caddy_2.9.0-beta.2_mac_arm64.sbom 118.26KB
111、 caddy_2.9.0-beta.2_mac_arm64.sbom.pem 3.16KB
112、 caddy_2.9.0-beta.2_mac_arm64.sbom.sig 96B
113、 caddy_2.9.0-beta.2_mac_arm64.tar.gz 13.83MB
114、 caddy_2.9.0-beta.2_mac_arm64.tar.gz.sig 96B
115、 caddy_2.9.0-beta.2_src.pem 3.16KB
116、 caddy_2.9.0-beta.2_src.tar.gz 10.13MB
117、 caddy_2.9.0-beta.2_src.tar.gz.sig 96B
118、 caddy_2.9.0-beta.2_windows_amd64.pem 3.16KB
119、 caddy_2.9.0-beta.2_windows_amd64.sbom 119.51KB
120、 caddy_2.9.0-beta.2_windows_amd64.sbom.pem 3.16KB
121、 caddy_2.9.0-beta.2_windows_amd64.sbom.sig 96B
122、 caddy_2.9.0-beta.2_windows_amd64.zip 14.55MB
123、 caddy_2.9.0-beta.2_windows_amd64.zip.sig 96B
124、 caddy_2.9.0-beta.2_windows_arm64.pem 3.15KB
125、 caddy_2.9.0-beta.2_windows_arm64.sbom 119.51KB
126、 caddy_2.9.0-beta.2_windows_arm64.sbom.pem 3.16KB
127、 caddy_2.9.0-beta.2_windows_arm64.sbom.sig 96B
128、 caddy_2.9.0-beta.2_windows_arm64.zip 13.21MB
129、 caddy_2.9.0-beta.2_windows_arm64.zip.sig 96B
130、 caddy_2.9.0-beta.2_windows_armv5.pem 3.15KB
131、 caddy_2.9.0-beta.2_windows_armv5.sbom 119.27KB
132、 caddy_2.9.0-beta.2_windows_armv5.sbom.pem 3.15KB
133、 caddy_2.9.0-beta.2_windows_armv5.sbom.sig 96B
134、 caddy_2.9.0-beta.2_windows_armv5.zip 13.56MB
135、 caddy_2.9.0-beta.2_windows_armv5.zip.sig 96B
136、 caddy_2.9.0-beta.2_windows_armv6.pem 3.15KB
137、 caddy_2.9.0-beta.2_windows_armv6.sbom 119.27KB
138、 caddy_2.9.0-beta.2_windows_armv6.sbom.pem 3.15KB
139、 caddy_2.9.0-beta.2_windows_armv6.sbom.sig 96B
140、 caddy_2.9.0-beta.2_windows_armv6.zip 13.56MB
141、 caddy_2.9.0-beta.2_windows_armv6.zip.sig 96B
142、 caddy_2.9.0-beta.2_windows_armv7.pem 3.15KB
143、 caddy_2.9.0-beta.2_windows_armv7.sbom 119.27KB
144、 caddy_2.9.0-beta.2_windows_armv7.sbom.pem 3.16KB
145、 caddy_2.9.0-beta.2_windows_armv7.sbom.sig 96B
146、 caddy_2.9.0-beta.2_windows_armv7.zip 13.54MB