gorp, a new lightweight reverse proxy for HTTP and TCP, written in Go.
Here is the user guide.
- Listeners
- HTTP
- HTTPS
- HTTPS with dynamic server certificate generation
- HTTP/3
- TCP
- TCP with TLS
- HTTP proxy (with cascade)
- Socks5 proxy
- Middlewares
- request and response headers
- response
Locationprefixing forstrip_prefix - response
Locationhost replacement - correlation IDs (UUIDs)
- logging and rate limiting
- Basic, token, digest, and OpenID Connect authentication
- dynamic Go request and response middleware
- OpenID Connect validation
- OpenAPI validation
- W2C distributed tracing
- HTTP routing, based on the request path or
Hostheader - SNI-based routing for TLS-enabled TCP listeners
- Backend selectors
- round robin, random, and first available
- cookie, header, source IP, and query parameter affinity
- least connections and power of two choices
- Backend authentication
- Basic, token, and AWS authentication
- TLS
- TLS for upstream
- TLS for downstream
- private certificate authorities for downstream connections
- downstream client authentication (mTLS)
- upstream client authentication (mTLS)
- certificate revocation lists (CRLs)
- OCSP (Online Certificate Status Protocol)
- TLS for TCP endpoints
- Directory fallback
- Admin listener
- Outbound proxy
- Prometheus metrics for listeners and backends on the admin listener
- Hot configuration reload