Caddy is an open-source, fast, cross-platform web server written in Go, best known for its automatic HTTPS features. It is designed to be simple, easy to use, and secure.
And as is typical with Go applications, the entire program is distributed as a single binary, which is available for Windows, Mac, Linux, and BSD and includes all of its dependencies.
Recently, Caddy developers just announced Caddy 2.6, with the caveat that it is one of the most significant versions.
This is our biggest release since Caddy 2. Caddy 2 changed the way the world serves the Web. By providing an online config API, automatic HTTPS, unlimited extensibility, certificate automation at scale, modern protocols, sane defaults, and an unrivaled developer experience, we boldly raised the bar for web servers.
So, after such an exciting announcement, we can’t help but pay attention to this release and see what new things it gives us.
Caddy 2.6 Web Server Highlights
HTTP/3
The big news here is that Caddy 2.6 includes HTTP/3 support by default. Furthermore, the previous experimental options “experimental_http3
” and “allow_h2c
” have been removed.
So, make sure they aren’t presented in your Caddyfile
config file before upgrading to Caddy 2.6. Otherwise, an error will be generated when attempting to start the server.
On top of that, it should be noted that HTTP/3 makes use of the QUIC transport, which requires UDP. In other words, HTTP/3 connections will fail if your network or firewall configuration only enables TCP, and clients will fall back to HTTP/2.
Virtual File Systems Support
Users of the Caddy web server are familiar with the powerful “file_server
” option, which allows it to deliver static files to clients. However, in the most recent update, Caddy has gone a step further, providing delivery of static files from virtual file systems.
Let me give you some use cases of how this option might be helpful. You could, for example, serve content as static files using AWS S3 or another blob/cloud storage provider. In addition, you can also load the files straight from the database rather than from the disk.
One thing is sure: this significantly increases the capabilities of this web server.
Faster FastCGI Performance
As you probably know, Caddy can be integrated with PHP through PHP-FPM. So, when Caddy 2 saw the light of day in 2019, all the code from the original Caddy implementation would have been rewritten from scratch with one major exception – the FastCGI part.
Caddy 2.6 changes this. The FastCGI implementation portion has been rewritten, and anyone running the web server enabled by PHP-FPM can now enjoy a lightning-fast performance.
But that’s not all. According to announcing data, Caddy now spends 86% less CPU time in GC. Undoubtedly impressive changes that will only add to the rapidly growing popularity of this relatively young web server.
Other Improvements in Caddy 2.6
According to the Caddy devs, “Caddy’s new defaults are even faster than optimized Nginx.” In addition, Caddy 2.6 implements “events” as an experimental app module, so they are still not part of the core. For example, you can use them to reload and update SSL certificates.
Of course, many other changes lead us to agree with the developers that Caddy 2.6 is one of the most exciting releases ever. You can refer to the release notes for detailed information about all changes in Caddy 2.6.