dynamic HTTP/HTTPS reverse proxy written in Golang
461
A dynamic HTTP/HTTPS reverse proxy written in Go that intelligently routes requests based on the incoming Host header or HTTP/2 :authority pseudo-header. Features dynamic SNI support, transparent proxying, a built-in dashboard UI, and Kubernetes-ready deployment.
Host header (HTTP/1.1) or :authority pseudo-header (HTTP/2)All options can be set via CLI flags or environment variables. CLI flags take precedence.
Host headers for backend servers/health endpoint for Kubernetes liveness/readiness probesSIGINT, SIGTERM) for clean shutdownsAll options can be set via CLI flags or environment variables. CLI flags take precedence.
| Flag | Env Variable | Default | Description |
|---|---|---|---|
-port | LISTEN_PORT | 8080 | Proxy listen port |
-target-host | TARGET_HOST | example.com | Fallback target host |
-target-port | TARGET_PORT | 443 | Target port to proxy to |
-target-scheme | TARGET_SCHEME | https | Target scheme (http / https) |
-sni | SNI | (dynamic) | SNI hostname (auto-set from request) |
-log-level | LOG_LEVEL | info | Log level (debug, info, warn, error) |
-skip-tls-verify | SKIP_TLS_VERIFY | false | Skip TLS certificate verification |
-enable-tls | ENABLE_TLS | false | Enable TLS for the proxy itself |
-tls-cert | TLS_CERT_FILE | /etc/certs/tls.crt | TLS certificate file path |
-tls-key | TLS_KEY_FILE | /etc/certs/tls.key | TLS private key file path |
-read-timeout | READ_TIMEOUT | 30 | Read timeout (seconds) |
-write-timeout | WRITE_TIMEOUT | 30 | Write timeout (seconds) |
-idle-timeout | IDLE_TIMEOUT | 120 | Idle timeout (seconds) |
-page-title | PAGE_TITLE | Dashboard page title | |
-sub-title | SUB_TITLE | Dashboard subtitle | |
-page-gradient | PAGE_GRADIENT | Dashboard CSS gradient | |
-page-title-icon | PAGE_TITLE_ICON | Dashboard title icon | |
-proxy-list | PROXY_LIST | YAML proxy list for dashboard |
Content type
Image
Digest
sha256:02123d277…
Size
7.9 MB
Last updated
6 months ago
docker pull hmdmph/dyn-proxy-go:0.1.0