THE BEER-WARE LICENSE
Bandgren wrote this file. As long as you retain this notice you can do whatever you want with this stuff. If we meet some day, and you think this stuff is worth it, you can buy me a beer in return.
License originally authored by Poul-Henning Kamp (phk).
go build && ./acme-proxy -p 8080
The /test
endpoint proxies the request towards https://postman-echo.com/headers
curl http://localhost:8080/test
And you will get the following JSON response
{
"headers":
{
"x-forwarded-proto":"https",
"x-forwarded-port":"443",
"host":"localhost",
"x-amzn-trace-id":"Root=1-5f5f2cdc-6077a6677943234e21c89ea2",
"user-agent":"curl/7.72.0",
"accept":"*/*",
"x-forwarded-host":"",
"x-origin-host":"postman-echo.com",
"key":"super-secret-key",
"accept-encoding":"gzip"
}
}
go test ./...
Example output
? acme-proxy [no test files]
? acme-proxy/internal/config [no test files]
ok acme-proxy/internal/proxy 2.498s
go test ./... -bench=.
Example output
goos: linux
goarch: amd64
pkg: acme-proxy/internal/proxy
BenchmarkProxy-8 69 16696905 ns/op
- How to protect the key?
- Depending on the domain, if running inside kubernetes, as a kube secret, otherwise a HMAC or OAuth solution.
- Limitations
- Currently, only supports one endpoint to proxy match.
- Dose not support trailer, stream or HTTP/2