From 206d32a2cdc6a2561b05e9c52280ae7fe8e083d0 Mon Sep 17 00:00:00 2001 From: Karl Stoney Date: Mon, 21 May 2018 08:32:50 +0100 Subject: [PATCH] Implement generate-request-id Fixes https://github.com/kubernetes/ingress-nginx/issues/2546 --- docs/user-guide/nginx-configuration/configmap.md | 5 +++++ internal/ingress/controller/config/config.go | 5 +++++ rootfs/etc/nginx/template/nginx.tmpl | 2 ++ 3 files changed, 12 insertions(+) diff --git a/docs/user-guide/nginx-configuration/configmap.md b/docs/user-guide/nginx-configuration/configmap.md index 0a63f0cea..05c12c4ce 100644 --- a/docs/user-guide/nginx-configuration/configmap.md +++ b/docs/user-guide/nginx-configuration/configmap.md @@ -105,6 +105,7 @@ The following table shows a configuration option's name, type, and the default v |[forwarded-for-header](#forwarded-for-header)|string|"X-Forwarded-For"| |[compute-full-forwarded-for](#compute-full-forwarded-for)|bool|"false"| |[proxy-add-original-uri-header](#proxy-add-original-uri-header)|bool|"true"| +|[generate-request-id](#generate-request-id)|bool|"true"| |[enable-opentracing](#enable-opentracing)|bool|"false"| |[zipkin-collector-host](#zipkin-collector-host)|string|""| |[zipkin-collector-port](#zipkin-collector-port)|int|9411| @@ -601,6 +602,10 @@ Append the remote address to the X-Forwarded-For header instead of replacing it. Adds an X-Original-Uri header with the original request URI to the backend request +## generate-request-id + +Ensures that X-Request-ID is defaulted to a random value, if no X-Request-ID is present in the request + ## enable-opentracing Enables the nginx Opentracing extension. _**default:**_ is disabled diff --git a/internal/ingress/controller/config/config.go b/internal/ingress/controller/config/config.go index 1e1640764..82e51e683 100644 --- a/internal/ingress/controller/config/config.go +++ b/internal/ingress/controller/config/config.go @@ -429,6 +429,10 @@ type Configuration struct { // Default: false ComputeFullForwardedFor bool `json:"compute-full-forwarded-for,omitempty"` + // If the request does not have a request-id, should we generate a random value? + // Default: true + GenerateRequestId bool `json:"generate-request-id,omitempty"` + // Adds an X-Original-Uri header with the original request URI to the backend request // Default: true ProxyAddOriginalUriHeader bool `json:"proxy-add-original-uri-header"` @@ -546,6 +550,7 @@ func NewDefault() Configuration { ForwardedForHeader: "X-Forwarded-For", ComputeFullForwardedFor: false, ProxyAddOriginalUriHeader: true, + GenerateRequestId: true, HTTP2MaxFieldSize: "4k", HTTP2MaxHeaderSize: "16k", HTTPRedirectCode: 308, diff --git a/rootfs/etc/nginx/template/nginx.tmpl b/rootfs/etc/nginx/template/nginx.tmpl index 35004eef1..42f3607fb 100644 --- a/rootfs/etc/nginx/template/nginx.tmpl +++ b/rootfs/etc/nginx/template/nginx.tmpl @@ -277,7 +277,9 @@ http { # If no such header is provided, it can provide a random value. map $http_x_request_id $req_id { default $http_x_request_id; + {{ if $cfg.GenerateRequestId }} "" $request_id; + {{ end }} } {{ if $cfg.ComputeFullForwardedFor }}