This release improves automatic HTTPS in cluster configurations, internal TLS
asset management, adds service discovery support to reverse proxying, reusable
snippets for the Caddyfile, and more!
Read the details in the announcement blog post!
https://caddyserver.com/blog/caddy-0_10_11-released
A few minor "breaking" changes include how signals are handled, conflicting TLS
configurations are no longer allowed (an error is raised), and a TLS alert is
raised if SNI is used but no certificate is available, rather than serving a
default certificate.
Special thanks to Ed for helping us patch a minor path-based open redirect
possibility!
Full change log:
Reusable snippets for the Caddyfile
Updated QUIC
Auto-HTTPS certificates may be shared by multiple instances
Expand globbed values in -conf flag
Swap behavior of SIGTERM and SIGQUIT; ignore SIGHUP
9 new DNS provider plugins for the ACME DNS challenge
New placeholder for {<Response-Header} values
basicauth: Username put in {user} placeholder
fastcgi: GET requests can now send a body
proxy: Service discovery with DNS SRV load balancing
request_id: Allow reusing request ID from header field
tls: Improved efficiency of many certificates and reloads
tls: Raise error if conflicting TLS configurations collide
tls: Raise TLS alert if SNI used and no cert matched
tls: Reject OCSP responses that expire after the certificate
tls: Clients can use SNI to request a specific certificate
tls: Add option for backend to approve on-demand certificate
tls: Synchronize maintenance of shared, managed certificates
Numerous fabulous bug fixes
0.10.10
-------
- Removed Caddy-Sponsors header
- New 'on' directive that deprecates 'startup' and 'shutdown'
- Changed CASE_SENSITIVE_PATH default to false
- fastcgi: Support for SRV upstreams
- redir: Rules with if statements are not checked for duplicates
- Several minor bug fixes
0.10.9
------
- EULA bundled with official binaries
- Caddy-Sponsors header to indicate personal-use license
- proxy: Support for QUIC backends
- templates: Write proper status code if proxied
- tls: Fix bug related to cert renewals
0.10.8
------
This is mainly a security release, with a couple other bug fixes (see commit
history for details on those).
This release fixes issue #1859. Previously, Caddy would not compress/merge
multiple consecutive forward slashes in the URL for comparisons, causing
certain comparisons to fail falsely not because of technical correctness, but
rather semantic correctness (i.e. it depends on what is using the path, but
most often, file systems will annoyingly collapse multiple slashes). Now,
Caddy's path matching behaves similar to NGINX's location block if
merge_slashes is enabled. Caddy now merges slashes by default when comparing
paths using Go's path.Clean(), which also evaluates .. in paths to ensure
equivalence on a semantic level.
0.10.7
This release introduces 3 new HTTP plugins: awses, jekyll, and forwardproxy,
and supports SIGUSR2 for graceful binary upgrades. Read the release blog post
for more information.
A huge thanks to our sponsors for making continued development possible, and
for keeping this release of Caddy free for everyone to use: Minio, Uptime
Robot, and Sourcegraph!
Change list:
- Built with Go 1.9
- New 3rd-party plugin HTTP directives: jekyll, awses, forwardproxy
- Different exit codes
- Plan 9 support
- Graceful binary upgrades with SIGUSR2
- internal: Support X-Accel-Redir without paths to protect
- templates: Can execute templates loaded by other middleware
- A few really good bug fixes
0.10.6
This is a hotfix for 0.10.5's fastcgi directive which invokes a runtime error
on 32-bit and ARM architectures, due to a known, documented bug in Go. We
don't run tests on 32-bit or ARM (yet) which would have been the only way to
catch this error in an automated fashion. Sorry about that. Enjoy this
release! It's the best one yet.
0.10.5
It's been kind of a crummy week for a lot of people, but here's some good
news: Caddy 0.10.5 is out! This release fixes subtle issues that were present
in proxying WebSockets or FastCGI connections. We've also improved MITM
detection for iOS clients. There is a new header-based load balancing policy.
On top of these changes, of note are these:
The requestid directive has been renamed to request_id to be more consistent
with other directives and subdirectives.
There is a new default timeout in town: the idle timeout now has a default
value of 5 minutes. Unlike the previous default timeouts, we don't expect this
will negatively impact anyone. There is generally no good use for idle
connections, and if you have a good use for them, you can disable this timeout
in your Caddyfile. (We've tested this timeout on several kinds of sites for
months and have had zero problems, only improvements in memory and FD usage.)
This release is compatible with three new 3rd-party plugins! The http.cache
plugin acts as a caching layer of middleware, which can drastically improve
performance of serving your site. http.nobots attempts to dissuade bots from
accessing your site. http.webdav was extracted from the filemanager plugin and
enables webdav serving.
As usual, a HUGE thanks to contributors who made this possible! Most of these
changes were implemented by contributors to the project, while the maintainers
have been busy working on improved proxy middleware and other things (that
hopefully we can reveal soon). Our community is fantastic, and we and all
Caddy users appreciate you. Thank you!
Full change log:
- Renamed requestid directive to request_id
- Set default idle timeout of 5 minutes
- New 3rd-party plugin directives: cache, nobots, webdav
- New Unix timestamp placeholder {when_unix}
- Improved MITM detection on iOS clients
- errors, log: Fix log rolling parsing
- gzip: Convert any ETag header to weak etag
- fastcgi: Reverted persistent connections (issue #1736)
- proxy: Added header loaded balancing policy
- proxy: Fix hang on chunked WebSockets (e.g. with HomeAssistant)
- Several other bug fixes and minor internal improvements
go14 has no relro support AFAICT.
go-1.8.3 has if you use -buildmode=pie, but it claims it's not supported
on Linux.
Disable relro checking for go packages until bsiegert has time to
look at this.
Caddy is a HTTP/2 web server with automatic HTTPS.
Caddy was born out of the need for a "batteries-included" web server
that runs anywhere and doesn't have to take its configuration with it.
Caddy took inspiration from spark, nginx, lighttpd, Websocketd and
Vagrant, which provides a pleasant mixture of features from each of
them.