snapshot of https://github.com/centrifugal/centrifugo.git (master, 2026-09-16; blobs > 131072B omitted)
This commit is contained in:
29
internal/reverseproxy/proxy.go
Normal file
29
internal/reverseproxy/proxy.go
Normal file
@@ -0,0 +1,29 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user