Skip to content

Commit 5f7eee7

Browse files
committed
Change funtionality so connection header value is empty when keep alive settings are enabled
1 parent 1053ca2 commit 5f7eee7

File tree

2 files changed

+23
-12
lines changed

2 files changed

+23
-12
lines changed

internal/mode/static/nginx/config/servers.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -727,11 +727,16 @@ func generateProxySetHeaders(
727727
um UpstreamMap,
728728
backends []dataplane.Backend,
729729
) []http.Header {
730-
var keepAlive bool
730+
modifiedConnectionHeader := connectionHeader
731731

732732
for _, backend := range backends {
733733
if um.keepAliveEnabled(backend.UpstreamName) {
734-
keepAlive = true
734+
// if keep-alive settings are enabled on any upstream, the connection header value
735+
// must be empty for the location
736+
modifiedConnectionHeader = http.Header{
737+
Name: connectionHeader.Name,
738+
Value: "",
739+
}
735740
break
736741
}
737742
}
@@ -741,10 +746,7 @@ func generateProxySetHeaders(
741746
extraHeaders = append(extraHeaders, authorityHeader)
742747
} else {
743748
extraHeaders = append(extraHeaders, upgradeHeader)
744-
745-
if !keepAlive {
746-
extraHeaders = append(extraHeaders, connectionHeader)
747-
}
749+
extraHeaders = append(extraHeaders, modifiedConnectionHeader)
748750
}
749751

750752
headers := createBaseProxySetHeaders(extraHeaders...)

internal/mode/static/nginx/config/servers_test.go

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2971,8 +2971,11 @@ func TestGenerateProxySetHeaders(t *testing.T) {
29712971
}, grpcBaseHeaders...),
29722972
},
29732973
{
2974-
msg: "upstream with keepAlive enabled",
2975-
expectedHeaders: createBaseProxySetHeaders(upgradeHeader),
2974+
msg: "upstream with keepAlive enabled",
2975+
expectedHeaders: append(createBaseProxySetHeaders(upgradeHeader), http.Header{
2976+
Name: connectionHeader.Name,
2977+
Value: "",
2978+
}),
29762979
upstreamMap: UpstreamMap{
29772980
nameToUpstream: map[string]http.Upstream{
29782981
"upstream": {
@@ -2988,8 +2991,11 @@ func TestGenerateProxySetHeaders(t *testing.T) {
29882991
},
29892992
},
29902993
{
2991-
msg: "multiple upstreams with keepAlive enabled",
2992-
expectedHeaders: createBaseProxySetHeaders(upgradeHeader),
2994+
msg: "multiple upstreams with keepAlive enabled",
2995+
expectedHeaders: append(createBaseProxySetHeaders(upgradeHeader), http.Header{
2996+
Name: connectionHeader.Name,
2997+
Value: "",
2998+
}),
29932999
upstreamMap: UpstreamMap{
29943000
nameToUpstream: map[string]http.Upstream{
29953001
"upstream1": {
@@ -3019,8 +3025,11 @@ func TestGenerateProxySetHeaders(t *testing.T) {
30193025
},
30203026
},
30213027
{
3022-
msg: "mix of upstreams with keepAlive enabled and disabled",
3023-
expectedHeaders: createBaseProxySetHeaders(upgradeHeader),
3028+
msg: "mix of upstreams with keepAlive enabled and disabled",
3029+
expectedHeaders: append(createBaseProxySetHeaders(upgradeHeader), http.Header{
3030+
Name: connectionHeader.Name,
3031+
Value: "",
3032+
}),
30243033
upstreamMap: UpstreamMap{
30253034
nameToUpstream: map[string]http.Upstream{
30263035
"upstream1": {

0 commit comments

Comments
 (0)