mirror of https://github.com/k3s-io/k3s
Merge pull request #11759 from bprashanth/flushing_proxy
Periodically flush the reverse proxypull/6/head
commit
7017f5dc85
|
@ -24,6 +24,7 @@ import (
|
|||
"net/url"
|
||||
"regexp"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
|
||||
"github.com/golang/glog"
|
||||
|
@ -36,6 +37,16 @@ const (
|
|||
DefaultMethodRejectRE = "POST,PUT,PATCH"
|
||||
)
|
||||
|
||||
var (
|
||||
// The reverse proxy will periodically flush the io writer at this frequency.
|
||||
// Only matters for long poll connections like the one used to watch. With an
|
||||
// interval of 0 the reverse proxy will buffer content sent on any connection
|
||||
// with transfer-encoding=chunked.
|
||||
// TODO: Flush after each chunk so the client doesn't suffer a 100ms latency per
|
||||
// watch event.
|
||||
ReverseProxyFlushInterval = 100 * time.Millisecond
|
||||
)
|
||||
|
||||
// FilterServer rejects requests which don't match one of the specified regular expressions
|
||||
type FilterServer struct {
|
||||
// Only paths that match this regexp will be accepted
|
||||
|
@ -171,7 +182,7 @@ func newProxy(target *url.URL) *httputil.ReverseProxy {
|
|||
req.URL.Host = target.Host
|
||||
req.URL.Path = singleJoiningSlash(target.Path, req.URL.Path)
|
||||
}
|
||||
return &httputil.ReverseProxy{Director: director}
|
||||
return &httputil.ReverseProxy{Director: director, FlushInterval: ReverseProxyFlushInterval}
|
||||
}
|
||||
|
||||
func newFileHandler(prefix, base string) http.Handler {
|
||||
|
|
Loading…
Reference in New Issue