mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2025-03-21 15:45:01 +00:00
app/vmauth: initialize reverse proxy only after flag.Parse() is called
This should properly take into accoun the `-maxIdleConnsPerBackend` command-line flag value. Previously it was hardcoded to 100. Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1300
This commit is contained in:
parent
4fb19fe34b
commit
305507930c
2 changed files with 40 additions and 24 deletions
|
@ -7,6 +7,7 @@ import (
|
||||||
"net/http/httputil"
|
"net/http/httputil"
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/VictoriaMetrics/VictoriaMetrics/lib/buildinfo"
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/buildinfo"
|
||||||
|
@ -108,7 +109,7 @@ func proxyRequest(w http.ResponseWriter, r *http.Request) {
|
||||||
// Forward other panics to the caller.
|
// Forward other panics to the caller.
|
||||||
panic(err)
|
panic(err)
|
||||||
}()
|
}()
|
||||||
reverseProxy.ServeHTTP(w, r)
|
getReverseProxy().ServeHTTP(w, r)
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -117,7 +118,19 @@ var (
|
||||||
missingRouteRequests = metrics.NewCounter(`vmauth_http_request_errors_total{reason="missing_route"}`)
|
missingRouteRequests = metrics.NewCounter(`vmauth_http_request_errors_total{reason="missing_route"}`)
|
||||||
)
|
)
|
||||||
|
|
||||||
var reverseProxy = &httputil.ReverseProxy{
|
var (
|
||||||
|
reverseProxy *httputil.ReverseProxy
|
||||||
|
reverseProxyOnce sync.Once
|
||||||
|
)
|
||||||
|
|
||||||
|
func getReverseProxy() *httputil.ReverseProxy {
|
||||||
|
reverseProxyOnce.Do(initReverseProxy)
|
||||||
|
return reverseProxy
|
||||||
|
}
|
||||||
|
|
||||||
|
// initReverseProxy must be called after flag.Parse(), since it uses command-line flags.
|
||||||
|
func initReverseProxy() {
|
||||||
|
reverseProxy = &httputil.ReverseProxy{
|
||||||
Director: func(r *http.Request) {
|
Director: func(r *http.Request) {
|
||||||
targetURL := r.Header.Get("vm-target-url")
|
targetURL := r.Header.Get("vm-target-url")
|
||||||
target, err := url.Parse(targetURL)
|
target, err := url.Parse(targetURL)
|
||||||
|
@ -140,6 +153,7 @@ var reverseProxy = &httputil.ReverseProxy{
|
||||||
}(),
|
}(),
|
||||||
FlushInterval: time.Second,
|
FlushInterval: time.Second,
|
||||||
ErrorLog: logger.StdErrorLogger(),
|
ErrorLog: logger.StdErrorLogger(),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func usage() {
|
func usage() {
|
||||||
|
|
|
@ -6,6 +6,8 @@ sort: 15
|
||||||
|
|
||||||
## tip
|
## tip
|
||||||
|
|
||||||
|
* BUGFIX: vmauth: properly take into account the value passed to `-maxIdleConnsPerBackend` command-line flag. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1300).
|
||||||
|
|
||||||
|
|
||||||
## [v1.69.0](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.69.0)
|
## [v1.69.0](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.69.0)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue