A simple reverse proxy with caching written in Go, using Redis for storage and supporting load balancing, SSL/TLS, and advanced caching features.
Go Proxy Cache is a lightweight reverse proxy server with integrated caching capabilities, designed to improve web application performance and reliability. It acts as an intermediary between clients and backend servers, storing frequently requested content in Redis to reduce load and latency. The project emphasizes simplicity, pragmatism, and ease of use, providing a self-contained, Dockerized solution that is both performant and configurable without external dependencies.
Developers and DevOps engineers who need a simple, configurable reverse proxy with built-in caching for web applications, particularly those looking to reduce backend load and improve response times without complex infrastructure. It's suitable for teams deploying containerized applications who want a compiled, dependency-free proxy solution.
Developers choose Go Proxy Cache for its integrated Redis-based full-page caching, load balancing with multiple algorithms, and automatic SSL/TLS certificate management via ACME (e.g., Let's Encrypt). Its unique selling point is being a self-contained, Dockerized reverse proxy that combines caching, security, and reliability features with fine-grained per-domain configuration via YAML or environment variables.
Simple Reverse Proxy with Caching, written in Go, using Redis.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides full-page caching stored in Redis with cache invalidation via HTTP PURGE and bypass headers, reducing backend load and latency as described in the caching features.
Supports multiple algorithms like IP Hash, Least Connections, Random, and Round-Robin for distributing traffic across backend servers, detailed in the load balancing section.
Offers automatic certificate generation via ACME (e.g., Let's Encrypt) and custom certificates, simplifying HTTPS setup as outlined in the security features.
Includes health checks, Prometheus metrics, OpenTelemetry tracing, and logging to Sentry/Syslog, enhancing reliability and observability per the logging and metrics section.
Configured via YAML files or environment variables with per-domain overrides, making it adaptable without external dependencies, as emphasized in the philosophy.
The README notes that ETag wrapper doesn't work well with WebSocket and HTTP/2, and WebSocket support requires disabling TimeoutHandler, which can affect performance and reliability.
Maintained by one person with development priority given to commercial versions, potentially slowing bug fixes and updates for the community edition, as mentioned in the support section.
Let's Encrypt cannot be used locally, leading to errors like 'acme/autocert: missing certificate,' complicating testing in non-production environments as listed in common errors.