ReverseProxy: use Rewrite to replace Director (#4005)

* display go version in make

* ReverseProxy: use Rewrite to replace Director
This commit is contained in:
fatedier 2024-02-19 21:04:29 +08:00 committed by GitHub
parent 4957fd23ee
commit 518ca2ceb2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 10 additions and 5 deletions

View File

@ -1,4 +1,4 @@
export PATH := $(GOPATH)/bin:$(PATH) export PATH := $(PATH):`go env GOPATH`/bin
export GO111MODULE=on export GO111MODULE=on
LDFLAGS := -s -w LDFLAGS := -s -w

View File

@ -53,7 +53,8 @@ func NewHTTP2HTTPSPlugin(options v1.ClientPluginOptions) (Plugin, error) {
} }
rp := &httputil.ReverseProxy{ rp := &httputil.ReverseProxy{
Director: func(req *http.Request) { Rewrite: func(r *httputil.ProxyRequest) {
req := r.Out
req.URL.Scheme = "https" req.URL.Scheme = "https"
req.URL.Host = p.opts.LocalAddr req.URL.Host = p.opts.LocalAddr
if p.opts.HostHeaderRewrite != "" { if p.opts.HostHeaderRewrite != "" {

View File

@ -50,7 +50,8 @@ func NewHTTPS2HTTPPlugin(options v1.ClientPluginOptions) (Plugin, error) {
} }
rp := &httputil.ReverseProxy{ rp := &httputil.ReverseProxy{
Director: func(req *http.Request) { Rewrite: func(r *httputil.ProxyRequest) {
req := r.Out
req.URL.Scheme = "http" req.URL.Scheme = "http"
req.URL.Host = p.opts.LocalAddr req.URL.Host = p.opts.LocalAddr
if p.opts.HostHeaderRewrite != "" { if p.opts.HostHeaderRewrite != "" {

View File

@ -55,7 +55,8 @@ func NewHTTPS2HTTPSPlugin(options v1.ClientPluginOptions) (Plugin, error) {
} }
rp := &httputil.ReverseProxy{ rp := &httputil.ReverseProxy{
Director: func(req *http.Request) { Rewrite: func(r *httputil.ProxyRequest) {
req := r.Out
req.URL.Scheme = "https" req.URL.Scheme = "https"
req.URL.Host = p.opts.LocalAddr req.URL.Host = p.opts.LocalAddr
if p.opts.HostHeaderRewrite != "" { if p.opts.HostHeaderRewrite != "" {

View File

@ -58,7 +58,9 @@ func NewHTTPReverseProxy(option HTTPReverseProxyOptions, vhostRouter *Routers) *
} }
proxy := &httputil.ReverseProxy{ proxy := &httputil.ReverseProxy{
// Modify incoming requests by route policies. // Modify incoming requests by route policies.
Director: func(req *http.Request) { Rewrite: func(r *httputil.ProxyRequest) {
r.SetXForwarded()
req := r.Out
req.URL.Scheme = "http" req.URL.Scheme = "http"
reqRouteInfo := req.Context().Value(RouteInfoKey).(*RequestRouteInfo) reqRouteInfo := req.Context().Value(RouteInfoKey).(*RequestRouteInfo)
oldHost, _ := httppkg.CanonicalHost(reqRouteInfo.Host) oldHost, _ := httppkg.CanonicalHost(reqRouteInfo.Host)