Files
upstream-mirror b352a9a30d
Some checks failed
test / Lint (push) Failing after 3s
test / Test with Go 1.26.8 (push) Failing after 2s
snapshot of https://github.com/centrifugal/centrifugo.git (master, 2026-09-16; blobs > 131072B omitted)
2026-09-16 01:17:21 +05:00

30 lines
741 B
Go

package reverseproxy
import (
"net/http"
"net/http/httputil"
"net/url"
"github.com/rs/zerolog/log"
)
// New takes target host and creates a reverse proxy.
func New(targetHost string) (*httputil.ReverseProxy, error) {
u, err := url.Parse(targetHost)
if err != nil {
return nil, err
}
p := httputil.NewSingleHostReverseProxy(u)
p.ErrorHandler = func(writer http.ResponseWriter, request *http.Request, err error) {
log.Error().Err(err).Msg("admin web proxy error")
}
return p, nil
}
// ProxyRequestHandler handles the http request using proxy
func ProxyRequestHandler(proxy *httputil.ReverseProxy) func(http.ResponseWriter, *http.Request) {
return func(w http.ResponseWriter, r *http.Request) {
proxy.ServeHTTP(w, r)
}
}