From d48d5a61aef734fdf16a97e5072aca846151118a Mon Sep 17 00:00:00 2001 From: Daniel Arifin Date: Fri, 14 Feb 2020 13:23:36 +0700 Subject: [PATCH] Add gzip-min-length as a configurable --- docs/user-guide/nginx-configuration/configmap.md | 4 ++++ internal/ingress/controller/config/config.go | 5 +++++ internal/ingress/controller/template/configmap_test.go | 2 ++ rootfs/etc/nginx/template/nginx.tmpl | 2 +- 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/docs/user-guide/nginx-configuration/configmap.md b/docs/user-guide/nginx-configuration/configmap.md index e4d30529a..db0e932aa 100755 --- a/docs/user-guide/nginx-configuration/configmap.md +++ b/docs/user-guide/nginx-configuration/configmap.md @@ -596,6 +596,10 @@ Enables or disables [HTTP/2](http://nginx.org/en/docs/http/ngx_http_v2_module.ht Sets the gzip Compression Level that will be used. _**default:**_ 5 +## gzip-min-length + +Minimum length of responses to be returned to the client before it is eligible for gzip compression, in bytes. _**default:**_ 256 + ## gzip-types Sets the MIME types in addition to "text/html" to compress. The special value "\*" matches any MIME type. Responses with the "text/html" type are always compressed if `[use-gzip](#use-gzip)` is enabled. diff --git a/internal/ingress/controller/config/config.go b/internal/ingress/controller/config/config.go index 6ef7cda28..ab96b22dd 100644 --- a/internal/ingress/controller/config/config.go +++ b/internal/ingress/controller/config/config.go @@ -393,6 +393,10 @@ type Configuration struct { // gzip Compression Level that will be used GzipLevel int `json:"gzip-level,omitempty"` + // Minimum length of responses to be sent to the client before it is eligible + // for gzip compression, in bytes. + GzipMinLength int `json:"gzip-min-length,omitempty"` + // MIME types in addition to "text/html" to compress. The special value “*” matches any MIME type. // Responses with the “text/html” type are always compressed if UseGzip is enabled GzipTypes string `json:"gzip-types,omitempty"` @@ -695,6 +699,7 @@ func NewDefault() Configuration { HSTSPreload: false, IgnoreInvalidHeaders: true, GzipLevel: 5, + GzipMinLength: 256, GzipTypes: gzipTypes, KeepAlive: 75, KeepAliveRequests: 100, diff --git a/internal/ingress/controller/template/configmap_test.go b/internal/ingress/controller/template/configmap_test.go index f4c5e9ab7..6b0d51c6b 100644 --- a/internal/ingress/controller/template/configmap_test.go +++ b/internal/ingress/controller/template/configmap_test.go @@ -65,6 +65,7 @@ func TestMergeConfigMapToStruct(t *testing.T) { "error-log-path": "/var/log/test/error.log", "use-gzip": "true", "gzip-level": "9", + "gzip-min-length": "1024", "gzip-types": "text/html", "proxy-real-ip-cidr": "1.1.1.1/8,2.2.2.2/24", "bind-address": "1.1.1.1,2.2.2.2,3.3.3,2001:db8:a0b:12f0::1,3731:54:65fe:2::a7,33:33:33::33::33", @@ -85,6 +86,7 @@ func TestMergeConfigMapToStruct(t *testing.T) { def.ProxySendTimeout = 2 def.UseProxyProtocol = true def.GzipLevel = 9 + def.GzipMinLength = 1024 def.GzipTypes = "text/html" def.ProxyRealIPCIDR = []string{"1.1.1.1/8", "2.2.2.2/24"} def.BindAddressIpv4 = []string{"1.1.1.1", "2.2.2.2"} diff --git a/rootfs/etc/nginx/template/nginx.tmpl b/rootfs/etc/nginx/template/nginx.tmpl index 7132cae1b..5c76bafbd 100755 --- a/rootfs/etc/nginx/template/nginx.tmpl +++ b/rootfs/etc/nginx/template/nginx.tmpl @@ -239,7 +239,7 @@ http { gzip on; gzip_comp_level {{ $cfg.GzipLevel }}; gzip_http_version 1.1; - gzip_min_length 256; + gzip_min_length {{ $cfg.GzipMinLength}}; gzip_types {{ $cfg.GzipTypes }}; gzip_proxied any; gzip_vary on;