From c173985af0b3dc8a3e9f39adc29dc92d3b14ebe8 Mon Sep 17 00:00:00 2001 From: Manuel de Brito Fontes Date: Wed, 8 Mar 2017 20:00:16 -0300 Subject: [PATCH] Allow custom http2 header sizes --- controllers/nginx/pkg/config/config.go | 12 +++++++++++- .../nginx/rootfs/etc/nginx/template/nginx.tmpl | 4 +++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/controllers/nginx/pkg/config/config.go b/controllers/nginx/pkg/config/config.go index 9f3ebef69..0001d9502 100644 --- a/controllers/nginx/pkg/config/config.go +++ b/controllers/nginx/pkg/config/config.go @@ -121,6 +121,14 @@ type Configuration struct { // Log levels above are listed in the order of increasing severity ErrorLogLevel string `json:"error-log-level,omitempty"` + // https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_max_field_size + // HTTP2MaxFieldSize Limits the maximum size of an HPACK-compressed request header field + HTTP2MaxFieldSize string `json:"http2-max-field-size,omitempty"` + + // https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_max_header_size + // HTTP2MaxHeaderSize Limits the maximum size of the entire request header list after HPACK decompression + HTTP2MaxHeaderSize string `json:"http2-max-header-size,omitempty"` + // Enables or disables the header HSTS in servers running SSL HSTS bool `json:"hsts,omitempty"` @@ -252,9 +260,11 @@ func NewDefault() Configuration { cfg := Configuration{ ClientHeaderBufferSize: "1k", DisableAccessLog: false, - DisableIpv6: false, + DisableIpv6: false, EnableDynamicTLSRecords: true, ErrorLogLevel: errorLevel, + HTTP2MaxFieldSize: "4k", + HTTP2MaxHeaderSize: "16k", HSTS: true, HSTSIncludeSubdomains: true, HSTSMaxAge: hstsMaxAge, diff --git a/controllers/nginx/rootfs/etc/nginx/template/nginx.tmpl b/controllers/nginx/rootfs/etc/nginx/template/nginx.tmpl index 3ada5ba40..0f3dafbd8 100644 --- a/controllers/nginx/rootfs/etc/nginx/template/nginx.tmpl +++ b/controllers/nginx/rootfs/etc/nginx/template/nginx.tmpl @@ -60,7 +60,9 @@ http { client_header_buffer_size {{ $cfg.ClientHeaderBufferSize }}; large_client_header_buffers {{ $cfg.LargeClientHeaderBuffers }}; - http2_max_field_size {{ $cfg.ClientHeaderBufferSize }}; + + http2_max_field_size {{ $cfg.HTTP2MaxFieldSize }}; + http2_max_header_size {{ $cfg.HTTP2MaxHeaderSize }}; types_hash_max_size 2048; server_names_hash_max_size {{ $cfg.ServerNameHashMaxSize }};