Today, we’re releasing Ferron 3.0.0-rc.4, the fourth release candidate version of what it would be Ferron 3.
This release involves overall stabilization of Ferron 3 as a whole, but also distributed rate limiting with Redis/Valkey.
Distributed rate limiting
As a Rustacean engineer, I couldn’t resist that “just one more feature”… 😅
So I ended up adding distributed rate limiting to Ferron 3. It uses Redis or Valkey as the backend for storing rate limit data. This allows rate limiting to be distributed across multiple Ferron instances. You can configure it like this:
example.com {
rate_limit_backend {
type redis
url "redis://127.0.0.1:6379/0"
}
rate_limit {
rate 100
burst 50
}
}Some other bug fixes
- HTTP/1.x multiple request parsing fix: fixed HTTP/1.x requests being rejected with 400 Bad Request after multiple requests in one connection. (see
zincio-httpchangelog) - HTTPS redirect fix:
https_redirectdirective is now effective for block levels above host block (like location or conditional blocks) if specified in the host block. - CGI and FastCGI
PATH_INFOfix: previously,PATH_INFOwas not set correctly in CGI requests (stray leading slash, ifPATH_INFOis about to be set). Now,PATH_INFOis set correctly in both CGI and FastCGI (often PHP-FPM) requests.
Ferron 3 stable coming soon
Ferron 3 is approaching even closer to a stable, production-ready web server. This release candidate focuses on improving the overall stability and user experience of Ferron 3.
As always, I welcome feedback, bug reports, and testing results.
Full changelog
You can see the complete changelog for Ferron 3.0.0-rc.4 in the release notes.
Try it
- Documentation: https://ferron.sh/docs/v3
- GitHub repo: https://github.com/ferronweb/ferron/tree/develop-3.x
Install Ferron 3 using the installer:
sudo bash -c "$(curl -fsSL https://get.ferron.sh/v3)"