cache-handler
replace-response
cache-handler | replace-response | |
---|---|---|
3 | 1 | |
222 | 88 | |
4.5% | - | |
4.7 | 4.9 | |
2 months ago | 5 months ago | |
Go | Go | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cache-handler
-
The Future of Nginx: Getting Back to Our Open Source Roots
That's outdated information. The cache handler plugin is ready to use: https://github.com/caddyserver/cache-handler
-
Caddy – The Ultimate Server with Automatic HTTPS
In case you missed it: https://github.com/caddyserver/caddy/issues/2786
Those issues are a thing of the past. There's no use bringing it up again, tbh.
> like acting as a cache
That's fair, we have a WIP cache module here https://github.com/caddyserver/cache-handler, it should be ready soon!
-
yoursunny.com is Served by Caddy
All these have been written in the nginx configuration. Caddy is powerful and robust, but I'm not ready to rewrite all these into a Caddyfile. Moreover, a critical feature is missing in Caddy: there isn't a caching layer.
replace-response
-
The Future of Nginx: Getting Back to Our Open Source Roots
> But there are many scenarios where being able to extend the HTTP server via Lua is more convenient than writing a plugin I would think?
Well, Caddy is written in Go, so it's only natural to write a plugin in Go. Statically compiled into your binary. We provide a tool called `xcaddy` which is used to produce builds of Caddy with any plugins you need. You just need Go installed on your system to run it, no other dependencies.
The reason why Lua is used for OpenResty is because writing plugins in C is... not fun.
You can absolutely do what you described with an HTTP handler module in Caddy. You'd just wrap the req.Body with a reader that watches the bytes as they're copied through the stream, and when you see the part you want to log, you do that.
We have a replace-response plugin which takes a similar approach, except it manipulates the response as it's being streamed back to the client. https://github.com/caddyserver/replace-response The whole plugin is just one file of Go code.
What are some alternatives?
nginx-cluster - A horizontally scalable NGINX caching cluster
njs - An official read-only mirror of http://hg.nginx.org/njs/ which is updated hourly.
server-side-tls - Server side TLS Tools
lua-nginx-module - Embed the Power of Lua into NGINX HTTP servers
caddy-ratelimit - HTTP rate limiting module for Caddy 2
caddy-l4 - Layer 4 (TCP/UDP) app for Caddy
Caddy - Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
kubernetes-ingress - NGINX and NGINX Plus Ingress Controllers for Kubernetes