mirror of
				https://github.com/caddyserver/caddy.git
				synced 2025-10-30 10:12:45 -04:00 
			
		
		
		
	Merge pull request #345 from tw4452852/my_proxy
proxy: make http header block scoped
This commit is contained in:
		
						commit
						280ba9db85
					
				| @ -98,11 +98,6 @@ func TestWebSocketReverseProxyFromWSClient(t *testing.T) { | |||||||
| // also sets up the rules/environment for testing WebSocket | // also sets up the rules/environment for testing WebSocket | ||||||
| // proxy. | // proxy. | ||||||
| func newWebSocketTestProxy(backendAddr string) *Proxy { | func newWebSocketTestProxy(backendAddr string) *Proxy { | ||||||
| 	proxyHeaders = http.Header{ |  | ||||||
| 		"Connection": {"{>Connection}"}, |  | ||||||
| 		"Upgrade":    {"{>Upgrade}"}, |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return &Proxy{ | 	return &Proxy{ | ||||||
| 		Upstreams: []Upstream{&fakeUpstream{name: backendAddr}}, | 		Upstreams: []Upstream{&fakeUpstream{name: backendAddr}}, | ||||||
| 	} | 	} | ||||||
| @ -121,7 +116,9 @@ func (u *fakeUpstream) Select() *UpstreamHost { | |||||||
| 	return &UpstreamHost{ | 	return &UpstreamHost{ | ||||||
| 		Name:         u.name, | 		Name:         u.name, | ||||||
| 		ReverseProxy: NewSingleHostReverseProxy(uri, ""), | 		ReverseProxy: NewSingleHostReverseProxy(uri, ""), | ||||||
| 		ExtraHeaders: proxyHeaders, | 		ExtraHeaders: http.Header{ | ||||||
|  | 			"Connection": {"{>Connection}"}, | ||||||
|  | 			"Upgrade":    {"{>Upgrade}"}}, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -16,13 +16,13 @@ import ( | |||||||
| 
 | 
 | ||||||
| var ( | var ( | ||||||
| 	supportedPolicies = make(map[string]func() Policy) | 	supportedPolicies = make(map[string]func() Policy) | ||||||
| 	proxyHeaders      = make(http.Header) |  | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| type staticUpstream struct { | type staticUpstream struct { | ||||||
| 	from   string | 	from         string | ||||||
| 	Hosts  HostPool | 	proxyHeaders http.Header | ||||||
| 	Policy Policy | 	Hosts        HostPool | ||||||
|  | 	Policy       Policy | ||||||
| 
 | 
 | ||||||
| 	FailTimeout time.Duration | 	FailTimeout time.Duration | ||||||
| 	MaxFails    int32 | 	MaxFails    int32 | ||||||
| @ -72,7 +72,7 @@ func NewStaticUpstreams(c parse.Dispenser) ([]Upstream, error) { | |||||||
| 				Fails:        0, | 				Fails:        0, | ||||||
| 				FailTimeout:  upstream.FailTimeout, | 				FailTimeout:  upstream.FailTimeout, | ||||||
| 				Unhealthy:    false, | 				Unhealthy:    false, | ||||||
| 				ExtraHeaders: proxyHeaders, | 				ExtraHeaders: upstream.proxyHeaders, | ||||||
| 				CheckDown: func(upstream *staticUpstream) UpstreamHostDownFunc { | 				CheckDown: func(upstream *staticUpstream) UpstreamHostDownFunc { | ||||||
| 					return func(uh *UpstreamHost) bool { | 					return func(uh *UpstreamHost) bool { | ||||||
| 						if uh.Unhealthy { | 						if uh.Unhealthy { | ||||||
| @ -159,10 +159,16 @@ func parseBlock(c *parse.Dispenser, u *staticUpstream) error { | |||||||
| 		if !c.Args(&header, &value) { | 		if !c.Args(&header, &value) { | ||||||
| 			return c.ArgErr() | 			return c.ArgErr() | ||||||
| 		} | 		} | ||||||
| 		proxyHeaders.Add(header, value) | 		if u.proxyHeaders == nil { | ||||||
|  | 			u.proxyHeaders = make(http.Header) | ||||||
|  | 		} | ||||||
|  | 		u.proxyHeaders.Add(header, value) | ||||||
| 	case "websocket": | 	case "websocket": | ||||||
| 		proxyHeaders.Add("Connection", "{>Connection}") | 		if u.proxyHeaders == nil { | ||||||
| 		proxyHeaders.Add("Upgrade", "{>Upgrade}") | 			u.proxyHeaders = make(http.Header) | ||||||
|  | 		} | ||||||
|  | 		u.proxyHeaders.Add("Connection", "{>Connection}") | ||||||
|  | 		u.proxyHeaders.Add("Upgrade", "{>Upgrade}") | ||||||
| 	case "without": | 	case "without": | ||||||
| 		if !c.NextArg() { | 		if !c.NextArg() { | ||||||
| 			return c.ArgErr() | 			return c.ArgErr() | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user