From c92d29d46211d0a6105f738b63fff5ca512127b7 Mon Sep 17 00:00:00 2001 From: Jim Zhang Date: Wed, 20 Feb 2019 18:05:09 +0800 Subject: [PATCH 1/4] feat: configurable proxy buffer number --- internal/ingress/annotations/proxy/main.go | 9 +++++++++ internal/ingress/annotations/proxy/main_test.go | 8 ++++++++ internal/ingress/controller/config/config.go | 1 + internal/ingress/controller/controller.go | 1 + internal/ingress/defaults/main.go | 4 ++++ rootfs/etc/nginx/template/nginx.tmpl | 4 ++-- test/data/config.json | 1 + test/e2e/annotations/proxy.go | 5 +++-- 8 files changed, 29 insertions(+), 4 deletions(-) diff --git a/internal/ingress/annotations/proxy/main.go b/internal/ingress/annotations/proxy/main.go index b8844ed60..fd2895203 100644 --- a/internal/ingress/annotations/proxy/main.go +++ b/internal/ingress/annotations/proxy/main.go @@ -29,6 +29,7 @@ type Config struct { ConnectTimeout int `json:"connectTimeout"` SendTimeout int `json:"sendTimeout"` ReadTimeout int `json:"readTimeout"` + BufferNumber int `json:"bufferNumber"` BufferSize string `json:"bufferSize"` CookieDomain string `json:"cookieDomain"` CookiePath string `json:"cookiePath"` @@ -60,6 +61,9 @@ func (l1 *Config) Equal(l2 *Config) bool { if l1.ReadTimeout != l2.ReadTimeout { return false } + if l1.BufferNumber != l2.BufferNumber { + return false + } if l1.BufferSize != l2.BufferSize { return false } @@ -123,6 +127,11 @@ func (a proxy) Parse(ing *extensions.Ingress) (interface{}, error) { config.ReadTimeout = defBackend.ProxyReadTimeout } + config.BufferNumber, err = parser.GetIntAnnotation("proxy-buffer-number", ing) + if err != nil { + config.BufferNumber = defBackend.ProxyBufferNumber + } + config.BufferSize, err = parser.GetStringAnnotation("proxy-buffer-size", ing) if err != nil { config.BufferSize = defBackend.ProxyBufferSize diff --git a/internal/ingress/annotations/proxy/main_test.go b/internal/ingress/annotations/proxy/main_test.go index 075047ece..04253be9f 100644 --- a/internal/ingress/annotations/proxy/main_test.go +++ b/internal/ingress/annotations/proxy/main_test.go @@ -73,6 +73,7 @@ func (m mockBackend) GetDefaultBackend() defaults.Backend { ProxyConnectTimeout: 10, ProxySendTimeout: 15, ProxyReadTimeout: 20, + ProxyBufferNumber: 4, ProxyBufferSize: "10k", ProxyBodySize: "3k", ProxyNextUpstream: "error", @@ -89,6 +90,7 @@ func TestProxy(t *testing.T) { data[parser.GetAnnotationWithPrefix("proxy-connect-timeout")] = "1" data[parser.GetAnnotationWithPrefix("proxy-send-timeout")] = "2" data[parser.GetAnnotationWithPrefix("proxy-read-timeout")] = "3" + data[parser.GetAnnotationWithPrefix("proxy-buffer-number")] = "8" data[parser.GetAnnotationWithPrefix("proxy-buffer-size")] = "1k" data[parser.GetAnnotationWithPrefix("proxy-body-size")] = "2k" data[parser.GetAnnotationWithPrefix("proxy-next-upstream")] = "off" @@ -114,6 +116,9 @@ func TestProxy(t *testing.T) { if p.ReadTimeout != 3 { t.Errorf("expected 3 as read-timeout but returned %v", p.ReadTimeout) } + if p.BufferNumber != 8 { + t.Errorf("expected 8 as proxy-buffer-number but returned %v", p.BufferNumber) + } if p.BufferSize != "1k" { t.Errorf("expected 1k as buffer-size but returned %v", p.BufferSize) } @@ -157,6 +162,9 @@ func TestProxyWithNoAnnotation(t *testing.T) { if p.ReadTimeout != 20 { t.Errorf("expected 20 as read-timeout but returned %v", p.ReadTimeout) } + if p.BufferNumber != 4 { + t.Errorf("expected 4 as buffer-number but returned %v", p.BufferNumber) + } if p.BufferSize != "10k" { t.Errorf("expected 10k as buffer-size but returned %v", p.BufferSize) } diff --git a/internal/ingress/controller/config/config.go b/internal/ingress/controller/config/config.go index db4703c12..57fed0fa1 100644 --- a/internal/ingress/controller/config/config.go +++ b/internal/ingress/controller/config/config.go @@ -671,6 +671,7 @@ func NewDefault() Configuration { ProxyConnectTimeout: 5, ProxyReadTimeout: 60, ProxySendTimeout: 60, + ProxyBufferNumber: 4, ProxyBufferSize: "4k", ProxyCookieDomain: "off", ProxyCookiePath: "off", diff --git a/internal/ingress/controller/controller.go b/internal/ingress/controller/controller.go index 98aa87b37..57ed31837 100644 --- a/internal/ingress/controller/controller.go +++ b/internal/ingress/controller/controller.go @@ -887,6 +887,7 @@ func (n *NGINXController) createServers(data []*ingress.Ingress, ConnectTimeout: bdef.ProxyConnectTimeout, SendTimeout: bdef.ProxySendTimeout, ReadTimeout: bdef.ProxyReadTimeout, + BufferNumber: bdef.ProxyBufferNumber, BufferSize: bdef.ProxyBufferSize, CookieDomain: bdef.ProxyCookieDomain, CookiePath: bdef.ProxyCookiePath, diff --git a/internal/ingress/defaults/main.go b/internal/ingress/defaults/main.go index 28bf65979..ad2faa15c 100644 --- a/internal/ingress/defaults/main.go +++ b/internal/ingress/defaults/main.go @@ -50,6 +50,10 @@ type Backend struct { // http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_send_timeout ProxySendTimeout int `json:"proxy-send-timeout"` + // Sets the number of the buffers used for reading a response from the proxied server + // http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffers + ProxyBufferNumber int `json:"proxy-buffer-number"` + // Sets the size of the buffer used for reading the first part of the response received from the // proxied server. This part usually contains a small response header. // http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffer_size) diff --git a/rootfs/etc/nginx/template/nginx.tmpl b/rootfs/etc/nginx/template/nginx.tmpl index 56fd1c734..bed20295a 100644 --- a/rootfs/etc/nginx/template/nginx.tmpl +++ b/rootfs/etc/nginx/template/nginx.tmpl @@ -969,7 +969,7 @@ stream { proxy_buffering {{ $location.Proxy.ProxyBuffering }}; proxy_buffer_size {{ $location.Proxy.BufferSize }}; - proxy_buffers 4 {{ $location.Proxy.BufferSize }}; + proxy_buffers {{$location.Proxy.BufferNumber}} {{ $location.Proxy.BufferSize }}; proxy_request_buffering {{ $location.Proxy.RequestBuffering }}; proxy_http_version 1.1; @@ -1267,7 +1267,7 @@ stream { proxy_buffering {{ $location.Proxy.ProxyBuffering }}; proxy_buffer_size {{ $location.Proxy.BufferSize }}; - proxy_buffers 4 {{ $location.Proxy.BufferSize }}; + proxy_buffers {{$location.Proxy.BufferNumber}} {{ $location.Proxy.BufferSize }}; proxy_request_buffering {{ $location.Proxy.RequestBuffering }}; proxy_http_version 1.1; diff --git a/test/data/config.json b/test/data/config.json index 36ea6d64f..435b41682 100644 --- a/test/data/config.json +++ b/test/data/config.json @@ -7,6 +7,7 @@ "bind-address-ipv6": [ "[2001:db8:a0b:12f0::1]" ,"[3731:54:65fe:2::a7]" ,"[33:33:33::33::33]" ], "backend": { "custom-http-errors": [404], + "proxy-buffer-number": "4", "proxy-buffer-size": "4k", "proxy-connect-timeout": 5, "proxy-read-timeout": 60, diff --git a/test/e2e/annotations/proxy.go b/test/e2e/annotations/proxy.go index f6169f4a3..4b971250b 100644 --- a/test/e2e/annotations/proxy.go +++ b/test/e2e/annotations/proxy.go @@ -147,8 +147,9 @@ var _ = framework.IngressNginxDescribe("Annotations - Proxy", func() { It("should turn on proxy-buffering", func() { annotations := map[string]string{ - "nginx.ingress.kubernetes.io/proxy-buffering": "on", - "nginx.ingress.kubernetes.io/proxy-buffer-size": "8k", + "nginx.ingress.kubernetes.io/proxy-buffering": "on", + "nginx.ingress.kubernetes.io/proxy-buffer-number": "4", + "nginx.ingress.kubernetes.io/proxy-buffer-size": "8k", } ing := framework.NewSingleIngress(host, "/", host, f.IngressController.Namespace, "http-svc", 80, &annotations) From 81e4440bdb9b82ad8e6d39c9c82d82eeb29c1b8f Mon Sep 17 00:00:00 2001 From: Jim Zhang Date: Wed, 20 Feb 2019 18:07:40 +0800 Subject: [PATCH 2/4] docs: add docs for proxy-buffer-number --- docs/user-guide/nginx-configuration/annotations.md | 11 +++++++++++ docs/user-guide/nginx-configuration/configmap.md | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/docs/user-guide/nginx-configuration/annotations.md b/docs/user-guide/nginx-configuration/annotations.md index e534575f8..2c4f07b9f 100644 --- a/docs/user-guide/nginx-configuration/annotations.md +++ b/docs/user-guide/nginx-configuration/annotations.md @@ -79,6 +79,7 @@ You can add these Kubernetes annotations to specific Ingress objects to customiz |[nginx.ingress.kubernetes.io/upstream-vhost](#custom-nginx-upstream-vhost)|string| |[nginx.ingress.kubernetes.io/whitelist-source-range](#whitelist-source-range)|CIDR| |[nginx.ingress.kubernetes.io/proxy-buffering](#proxy-buffering)|string| +|[nginx.ingress.kubernetes.io/proxy-buffer-number](#proxy-buffer-number)|number| |[nginx.ingress.kubernetes.io/proxy-buffer-size](#proxy-buffer-size)|string| |[nginx.ingress.kubernetes.io/ssl-ciphers](#ssl-ciphers)|string| |[nginx.ingress.kubernetes.io/connection-proxy-header](#connection-proxy-header)|string| @@ -546,6 +547,16 @@ To use custom values in an Ingress rule define these annotation: nginx.ingress.kubernetes.io/proxy-buffering: "on" ``` +### Proxy buffer Number + +Sets the number of the buffer in [`proxy_buffers`](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffers) used for reading the first part of the response received from the proxied server. +By default proxy buffer number is set as 4 + +To configure this setting globally, set `proxy-buffer-number` in [NGINX ConfigMap](./configmap.md#proxy-buffer-number). To use custom values in an Ingress rule, define this annotation: +```yaml +nginx.ingress.kubernetes.io/proxy-buffer-number: "4" +``` + ### Proxy buffer size Sets the size of the buffer [`proxy_buffer_size`](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffer_size) used for reading the first part of the response received from the proxied server. diff --git a/docs/user-guide/nginx-configuration/configmap.md b/docs/user-guide/nginx-configuration/configmap.md index 10579c924..eba5f22ff 100644 --- a/docs/user-guide/nginx-configuration/configmap.md +++ b/docs/user-guide/nginx-configuration/configmap.md @@ -132,6 +132,7 @@ The following table shows a configuration option's name, type, and the default v |[proxy-connect-timeout](#proxy-connect-timeout)|int|5| |[proxy-read-timeout](#proxy-read-timeout)|int|60| |[proxy-send-timeout](#proxy-send-timeout)|int|60| +|[proxy-buffer-number](#proxy-buffer-number)|int|4| |[proxy-buffer-size](#proxy-buffer-size)|string|"4k"| |[proxy-cookie-path](#proxy-cookie-path)|string|"off"| |[proxy-cookie-domain](#proxy-cookie-domain)|string|"off"| @@ -762,6 +763,10 @@ Sets the timeout in seconds for [reading a response from the proxied server](htt Sets the timeout in seconds for [transmitting a request to the proxied server](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_send_timeout). The timeout is set only between two successive write operations, not for the transmission of the whole request. +## proxy-buffer-number + +Sets the number of the buffer used for [reading the first part of the response](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffers) received from the proxied server. This part usually contains a small response header. + ## proxy-buffer-size Sets the size of the buffer used for [reading the first part of the response](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffer_size) received from the proxied server. This part usually contains a small response header. From dc63e5d185a5a9df0786e0c0cb73cf4006b4547a Mon Sep 17 00:00:00 2001 From: Jim Zhang Date: Fri, 22 Feb 2019 10:21:17 +0800 Subject: [PATCH 3/4] fix: rename proxy-buffer-number to proxy-buffers-number --- docs/user-guide/nginx-configuration/annotations.md | 12 ++++++------ docs/user-guide/nginx-configuration/configmap.md | 4 ++-- internal/ingress/annotations/proxy/main.go | 8 ++++---- internal/ingress/annotations/proxy/main_test.go | 12 ++++++------ internal/ingress/controller/config/config.go | 2 +- internal/ingress/controller/controller.go | 2 +- internal/ingress/defaults/main.go | 2 +- rootfs/etc/nginx/template/nginx.tmpl | 4 ++-- test/data/config.json | 2 +- test/e2e/annotations/proxy.go | 8 ++++---- 10 files changed, 28 insertions(+), 28 deletions(-) diff --git a/docs/user-guide/nginx-configuration/annotations.md b/docs/user-guide/nginx-configuration/annotations.md index 2c4f07b9f..b37fb739e 100644 --- a/docs/user-guide/nginx-configuration/annotations.md +++ b/docs/user-guide/nginx-configuration/annotations.md @@ -79,7 +79,7 @@ You can add these Kubernetes annotations to specific Ingress objects to customiz |[nginx.ingress.kubernetes.io/upstream-vhost](#custom-nginx-upstream-vhost)|string| |[nginx.ingress.kubernetes.io/whitelist-source-range](#whitelist-source-range)|CIDR| |[nginx.ingress.kubernetes.io/proxy-buffering](#proxy-buffering)|string| -|[nginx.ingress.kubernetes.io/proxy-buffer-number](#proxy-buffer-number)|number| +|[nginx.ingress.kubernetes.io/proxy-buffers-number](#proxy-buffers-number)|number| |[nginx.ingress.kubernetes.io/proxy-buffer-size](#proxy-buffer-size)|string| |[nginx.ingress.kubernetes.io/ssl-ciphers](#ssl-ciphers)|string| |[nginx.ingress.kubernetes.io/connection-proxy-header](#connection-proxy-header)|string| @@ -547,14 +547,14 @@ To use custom values in an Ingress rule define these annotation: nginx.ingress.kubernetes.io/proxy-buffering: "on" ``` -### Proxy buffer Number +### Proxy buffers Number -Sets the number of the buffer in [`proxy_buffers`](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffers) used for reading the first part of the response received from the proxied server. -By default proxy buffer number is set as 4 +Sets the number of the buffers in [`proxy_buffers`](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffers) used for reading the first part of the response received from the proxied server. +By default proxy buffers number is set as 4 -To configure this setting globally, set `proxy-buffer-number` in [NGINX ConfigMap](./configmap.md#proxy-buffer-number). To use custom values in an Ingress rule, define this annotation: +To configure this setting globally, set `proxy-buffers-number` in [NGINX ConfigMap](./configmap.md#proxy-buffers-number). To use custom values in an Ingress rule, define this annotation: ```yaml -nginx.ingress.kubernetes.io/proxy-buffer-number: "4" +nginx.ingress.kubernetes.io/proxy-buffers-number: "4" ``` ### Proxy buffer size diff --git a/docs/user-guide/nginx-configuration/configmap.md b/docs/user-guide/nginx-configuration/configmap.md index eba5f22ff..a3146bbb0 100644 --- a/docs/user-guide/nginx-configuration/configmap.md +++ b/docs/user-guide/nginx-configuration/configmap.md @@ -132,7 +132,7 @@ The following table shows a configuration option's name, type, and the default v |[proxy-connect-timeout](#proxy-connect-timeout)|int|5| |[proxy-read-timeout](#proxy-read-timeout)|int|60| |[proxy-send-timeout](#proxy-send-timeout)|int|60| -|[proxy-buffer-number](#proxy-buffer-number)|int|4| +|[proxy-buffers-number](#proxy-buffers-number)|int|4| |[proxy-buffer-size](#proxy-buffer-size)|string|"4k"| |[proxy-cookie-path](#proxy-cookie-path)|string|"off"| |[proxy-cookie-domain](#proxy-cookie-domain)|string|"off"| @@ -763,7 +763,7 @@ Sets the timeout in seconds for [reading a response from the proxied server](htt Sets the timeout in seconds for [transmitting a request to the proxied server](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_send_timeout). The timeout is set only between two successive write operations, not for the transmission of the whole request. -## proxy-buffer-number +## proxy-buffers-number Sets the number of the buffer used for [reading the first part of the response](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffers) received from the proxied server. This part usually contains a small response header. diff --git a/internal/ingress/annotations/proxy/main.go b/internal/ingress/annotations/proxy/main.go index fd2895203..1e3fcd49e 100644 --- a/internal/ingress/annotations/proxy/main.go +++ b/internal/ingress/annotations/proxy/main.go @@ -29,7 +29,7 @@ type Config struct { ConnectTimeout int `json:"connectTimeout"` SendTimeout int `json:"sendTimeout"` ReadTimeout int `json:"readTimeout"` - BufferNumber int `json:"bufferNumber"` + BuffersNumber int `json:"buffersNumber"` BufferSize string `json:"bufferSize"` CookieDomain string `json:"cookieDomain"` CookiePath string `json:"cookiePath"` @@ -61,7 +61,7 @@ func (l1 *Config) Equal(l2 *Config) bool { if l1.ReadTimeout != l2.ReadTimeout { return false } - if l1.BufferNumber != l2.BufferNumber { + if l1.BuffersNumber != l2.BuffersNumber { return false } if l1.BufferSize != l2.BufferSize { @@ -127,9 +127,9 @@ func (a proxy) Parse(ing *extensions.Ingress) (interface{}, error) { config.ReadTimeout = defBackend.ProxyReadTimeout } - config.BufferNumber, err = parser.GetIntAnnotation("proxy-buffer-number", ing) + config.BuffersNumber, err = parser.GetIntAnnotation("proxy-buffers-number", ing) if err != nil { - config.BufferNumber = defBackend.ProxyBufferNumber + config.BuffersNumber = defBackend.ProxyBuffersNumber } config.BufferSize, err = parser.GetStringAnnotation("proxy-buffer-size", ing) diff --git a/internal/ingress/annotations/proxy/main_test.go b/internal/ingress/annotations/proxy/main_test.go index 04253be9f..61e78267c 100644 --- a/internal/ingress/annotations/proxy/main_test.go +++ b/internal/ingress/annotations/proxy/main_test.go @@ -73,7 +73,7 @@ func (m mockBackend) GetDefaultBackend() defaults.Backend { ProxyConnectTimeout: 10, ProxySendTimeout: 15, ProxyReadTimeout: 20, - ProxyBufferNumber: 4, + ProxyBuffersNumber: 4, ProxyBufferSize: "10k", ProxyBodySize: "3k", ProxyNextUpstream: "error", @@ -90,7 +90,7 @@ func TestProxy(t *testing.T) { data[parser.GetAnnotationWithPrefix("proxy-connect-timeout")] = "1" data[parser.GetAnnotationWithPrefix("proxy-send-timeout")] = "2" data[parser.GetAnnotationWithPrefix("proxy-read-timeout")] = "3" - data[parser.GetAnnotationWithPrefix("proxy-buffer-number")] = "8" + data[parser.GetAnnotationWithPrefix("proxy-buffers-number")] = "8" data[parser.GetAnnotationWithPrefix("proxy-buffer-size")] = "1k" data[parser.GetAnnotationWithPrefix("proxy-body-size")] = "2k" data[parser.GetAnnotationWithPrefix("proxy-next-upstream")] = "off" @@ -116,8 +116,8 @@ func TestProxy(t *testing.T) { if p.ReadTimeout != 3 { t.Errorf("expected 3 as read-timeout but returned %v", p.ReadTimeout) } - if p.BufferNumber != 8 { - t.Errorf("expected 8 as proxy-buffer-number but returned %v", p.BufferNumber) + if p.BuffersNumber != 8 { + t.Errorf("expected 8 as proxy-buffers-number but returned %v", p.BuffersNumber) } if p.BufferSize != "1k" { t.Errorf("expected 1k as buffer-size but returned %v", p.BufferSize) @@ -162,8 +162,8 @@ func TestProxyWithNoAnnotation(t *testing.T) { if p.ReadTimeout != 20 { t.Errorf("expected 20 as read-timeout but returned %v", p.ReadTimeout) } - if p.BufferNumber != 4 { - t.Errorf("expected 4 as buffer-number but returned %v", p.BufferNumber) + if p.BuffersNumber != 4 { + t.Errorf("expected 4 as buffer-number but returned %v", p.BuffersNumber) } if p.BufferSize != "10k" { t.Errorf("expected 10k as buffer-size but returned %v", p.BufferSize) diff --git a/internal/ingress/controller/config/config.go b/internal/ingress/controller/config/config.go index 57fed0fa1..e5fd12132 100644 --- a/internal/ingress/controller/config/config.go +++ b/internal/ingress/controller/config/config.go @@ -671,7 +671,7 @@ func NewDefault() Configuration { ProxyConnectTimeout: 5, ProxyReadTimeout: 60, ProxySendTimeout: 60, - ProxyBufferNumber: 4, + ProxyBuffersNumber: 4, ProxyBufferSize: "4k", ProxyCookieDomain: "off", ProxyCookiePath: "off", diff --git a/internal/ingress/controller/controller.go b/internal/ingress/controller/controller.go index 57ed31837..892e8d0b7 100644 --- a/internal/ingress/controller/controller.go +++ b/internal/ingress/controller/controller.go @@ -887,7 +887,7 @@ func (n *NGINXController) createServers(data []*ingress.Ingress, ConnectTimeout: bdef.ProxyConnectTimeout, SendTimeout: bdef.ProxySendTimeout, ReadTimeout: bdef.ProxyReadTimeout, - BufferNumber: bdef.ProxyBufferNumber, + BuffersNumber: bdef.ProxyBuffersNumber, BufferSize: bdef.ProxyBufferSize, CookieDomain: bdef.ProxyCookieDomain, CookiePath: bdef.ProxyCookiePath, diff --git a/internal/ingress/defaults/main.go b/internal/ingress/defaults/main.go index ad2faa15c..0242c9f7f 100644 --- a/internal/ingress/defaults/main.go +++ b/internal/ingress/defaults/main.go @@ -52,7 +52,7 @@ type Backend struct { // Sets the number of the buffers used for reading a response from the proxied server // http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffers - ProxyBufferNumber int `json:"proxy-buffer-number"` + ProxyBuffersNumber int `json:"proxy-buffers-number"` // Sets the size of the buffer used for reading the first part of the response received from the // proxied server. This part usually contains a small response header. diff --git a/rootfs/etc/nginx/template/nginx.tmpl b/rootfs/etc/nginx/template/nginx.tmpl index bed20295a..6d9eb3316 100644 --- a/rootfs/etc/nginx/template/nginx.tmpl +++ b/rootfs/etc/nginx/template/nginx.tmpl @@ -969,7 +969,7 @@ stream { proxy_buffering {{ $location.Proxy.ProxyBuffering }}; proxy_buffer_size {{ $location.Proxy.BufferSize }}; - proxy_buffers {{$location.Proxy.BufferNumber}} {{ $location.Proxy.BufferSize }}; + proxy_buffers {{ $location.Proxy.BuffersNumber }} {{ $location.Proxy.BufferSize }}; proxy_request_buffering {{ $location.Proxy.RequestBuffering }}; proxy_http_version 1.1; @@ -1267,7 +1267,7 @@ stream { proxy_buffering {{ $location.Proxy.ProxyBuffering }}; proxy_buffer_size {{ $location.Proxy.BufferSize }}; - proxy_buffers {{$location.Proxy.BufferNumber}} {{ $location.Proxy.BufferSize }}; + proxy_buffers {{ $location.Proxy.BuffersNumber }} {{ $location.Proxy.BufferSize }}; proxy_request_buffering {{ $location.Proxy.RequestBuffering }}; proxy_http_version 1.1; diff --git a/test/data/config.json b/test/data/config.json index 435b41682..2c2975c69 100644 --- a/test/data/config.json +++ b/test/data/config.json @@ -7,7 +7,7 @@ "bind-address-ipv6": [ "[2001:db8:a0b:12f0::1]" ,"[3731:54:65fe:2::a7]" ,"[33:33:33::33::33]" ], "backend": { "custom-http-errors": [404], - "proxy-buffer-number": "4", + "proxy-buffers-number": "4", "proxy-buffer-size": "4k", "proxy-connect-timeout": 5, "proxy-read-timeout": 60, diff --git a/test/e2e/annotations/proxy.go b/test/e2e/annotations/proxy.go index 4b971250b..2976b47d0 100644 --- a/test/e2e/annotations/proxy.go +++ b/test/e2e/annotations/proxy.go @@ -147,9 +147,9 @@ var _ = framework.IngressNginxDescribe("Annotations - Proxy", func() { It("should turn on proxy-buffering", func() { annotations := map[string]string{ - "nginx.ingress.kubernetes.io/proxy-buffering": "on", - "nginx.ingress.kubernetes.io/proxy-buffer-number": "4", - "nginx.ingress.kubernetes.io/proxy-buffer-size": "8k", + "nginx.ingress.kubernetes.io/proxy-buffering": "on", + "nginx.ingress.kubernetes.io/proxy-buffers-number": "8", + "nginx.ingress.kubernetes.io/proxy-buffer-size": "8k", } ing := framework.NewSingleIngress(host, "/", host, f.IngressController.Namespace, "http-svc", 80, &annotations) @@ -159,7 +159,7 @@ var _ = framework.IngressNginxDescribe("Annotations - Proxy", func() { func(server string) bool { return strings.Contains(server, "proxy_buffering on;") && strings.Contains(server, "proxy_buffer_size 8k;") && - strings.Contains(server, "proxy_buffers 4 8k;") && + strings.Contains(server, "proxy_buffers 8 8k;") && strings.Contains(server, "proxy_request_buffering on;") }) }) From 6305e1d1520490a30aad68c2990f5c8a587a53f8 Mon Sep 17 00:00:00 2001 From: Jim Zhang Date: Fri, 22 Feb 2019 15:04:19 +0800 Subject: [PATCH 4/4] fix: run gofmt --- internal/ingress/annotations/proxy/main_test.go | 2 +- internal/ingress/controller/config/config.go | 2 +- internal/ingress/controller/controller.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/ingress/annotations/proxy/main_test.go b/internal/ingress/annotations/proxy/main_test.go index 61e78267c..33bb6b614 100644 --- a/internal/ingress/annotations/proxy/main_test.go +++ b/internal/ingress/annotations/proxy/main_test.go @@ -73,7 +73,7 @@ func (m mockBackend) GetDefaultBackend() defaults.Backend { ProxyConnectTimeout: 10, ProxySendTimeout: 15, ProxyReadTimeout: 20, - ProxyBuffersNumber: 4, + ProxyBuffersNumber: 4, ProxyBufferSize: "10k", ProxyBodySize: "3k", ProxyNextUpstream: "error", diff --git a/internal/ingress/controller/config/config.go b/internal/ingress/controller/config/config.go index e5fd12132..dc613c156 100644 --- a/internal/ingress/controller/config/config.go +++ b/internal/ingress/controller/config/config.go @@ -671,7 +671,7 @@ func NewDefault() Configuration { ProxyConnectTimeout: 5, ProxyReadTimeout: 60, ProxySendTimeout: 60, - ProxyBuffersNumber: 4, + ProxyBuffersNumber: 4, ProxyBufferSize: "4k", ProxyCookieDomain: "off", ProxyCookiePath: "off", diff --git a/internal/ingress/controller/controller.go b/internal/ingress/controller/controller.go index 892e8d0b7..f1207efe8 100644 --- a/internal/ingress/controller/controller.go +++ b/internal/ingress/controller/controller.go @@ -887,7 +887,7 @@ func (n *NGINXController) createServers(data []*ingress.Ingress, ConnectTimeout: bdef.ProxyConnectTimeout, SendTimeout: bdef.ProxySendTimeout, ReadTimeout: bdef.ProxyReadTimeout, - BuffersNumber: bdef.ProxyBuffersNumber, + BuffersNumber: bdef.ProxyBuffersNumber, BufferSize: bdef.ProxyBufferSize, CookieDomain: bdef.ProxyCookieDomain, CookiePath: bdef.ProxyCookiePath,