From fdd231816c3c80a3f5bbef16fbbe6e82aab55a6a Mon Sep 17 00:00:00 2001 From: Manuel de Brito Fontes Date: Sun, 12 Nov 2017 10:33:18 -0300 Subject: [PATCH] Disable features not availables in some platforms --- docs/user-guide/configmap.md | 17 +++++++++-------- internal/ingress/controller/config/config.go | 4 ++-- internal/ingress/controller/nginx.go | 10 ++++++++++ rootfs/etc/nginx/template/nginx.tmpl | 2 +- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/docs/user-guide/configmap.md b/docs/user-guide/configmap.md index b010405a39..e62bfe0bd4 100644 --- a/docs/user-guide/configmap.md +++ b/docs/user-guide/configmap.md @@ -123,14 +123,23 @@ Example usage: `custom-http-errors: 404,415` ### Other Directives #### brotli-level + Sets the Brotli Compression Level that will be used. *Defaults to* 4 #### brotli-types + Sets the MIME Types that will be compressed on-the-fly by brotli. *Defaults to* `application/xml+rss application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/plain text/x-component` +#### enable-brotli + +Enables or disables compression of HTTP responses using the ["brotli" module](https://github.com/google/ngx_brotli). + +The default mime type list to compress is: `application/xml+rss application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/plain text/x-component`. + +This is *enabled* by default #### enable-modsecurity @@ -332,14 +341,6 @@ Sets the number of unsuccessful attempts to communicate with the [server](http:/ Sets the time during which the specified number of unsuccessful attempts to communicate with the [server](http://nginx.org/en/docs/http/ngx_http_upstream_module.html#upstream) should happen to consider the server unavailable. -#### use-brotli - -Enables or disables compression of HTTP responses using the ["brotli" module](https://github.com/google/ngx_brotli). - -The default mime type list to compress is: `application/xml+rss application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/plain text/x-component`. - -This is *enabled* by default - #### use-gzip diff --git a/internal/ingress/controller/config/config.go b/internal/ingress/controller/config/config.go index 4a0586a072..b755a02912 100644 --- a/internal/ingress/controller/config/config.go +++ b/internal/ingress/controller/config/config.go @@ -335,7 +335,7 @@ type Configuration struct { // Enables or disables the use of the NGINX Brotli Module for compression // https://github.com/google/ngx_brotli - UseBrotli bool `json:"use-brotli,omitempty"` + EnableBrotli bool `json:"enable-brotli,omitempty"` // Brotli Compression Level that will be used BrotliLevel int `json:"brotli-level,omitempty"` @@ -476,7 +476,7 @@ func NewDefault() Configuration { SSLSessionCacheSize: sslSessionCacheSize, SSLSessionTickets: true, SSLSessionTimeout: sslSessionTimeout, - UseBrotli: true, + EnableBrotli: true, UseGzip: true, WorkerProcesses: strconv.Itoa(runtime.NumCPU()), WorkerShutdownTimeout: "10s", diff --git a/internal/ingress/controller/nginx.go b/internal/ingress/controller/nginx.go index b88002fec4..69e596eb3d 100644 --- a/internal/ingress/controller/nginx.go +++ b/internal/ingress/controller/nginx.go @@ -25,6 +25,7 @@ import ( "net" "os" "os/exec" + "runtime" "strconv" "strings" "sync" @@ -598,6 +599,15 @@ func (n *NGINXController) OnUpdate(ingressCfg ingress.Configuration) error { cfg.SSLDHParam = sslDHParam + // disable features are not available in some platforms + switch runtime.GOARCH { + case "arm", "arm64", "ppc64le": + cfg.EnableModsecurity = false + case "s390x": + cfg.EnableModsecurity = false + cfg.EnableBrotli = false + } + tc := ngx_config.TemplateConfig{ ProxySetHeaders: setHeaders, AddHeaders: addHeaders, diff --git a/rootfs/etc/nginx/template/nginx.tmpl b/rootfs/etc/nginx/template/nginx.tmpl index 40f32710b4..1a0fd34210 100644 --- a/rootfs/etc/nginx/template/nginx.tmpl +++ b/rootfs/etc/nginx/template/nginx.tmpl @@ -113,7 +113,7 @@ http { include /etc/nginx/mime.types; default_type text/html; - {{ if $cfg.UseBrotli }} + {{ if $cfg.EnableBrotli }} brotli on; brotli_comp_level {{ $cfg.BrotliLevel }}; brotli_types {{ $cfg.BrotliTypes }};