From 0cdc4bd8baf4d29e594af849ac1a96ab3cbc4a15 Mon Sep 17 00:00:00 2001 From: Manuel de Brito Fontes Date: Tue, 14 Feb 2017 14:24:25 -0300 Subject: [PATCH] Pass headers to custom error backend --- .../nginx/rootfs/etc/nginx/lua/error_page.lua | 14 +++++++------- .../nginx/rootfs/etc/nginx/template/nginx.tmpl | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/controllers/nginx/rootfs/etc/nginx/lua/error_page.lua b/controllers/nginx/rootfs/etc/nginx/lua/error_page.lua index e8a26ee9e..2b9178a56 100644 --- a/controllers/nginx/rootfs/etc/nginx/lua/error_page.lua +++ b/controllers/nginx/rootfs/etc/nginx/lua/error_page.lua @@ -8,17 +8,17 @@ local get_upstreams = upstream.get_upstreams local random = math.random local us = get_upstreams() -function openURL(status) +function openURL(original_headers, status) local httpc = http.new() + original_headers["X-Code"] = status or "404" + original_headers["X-Format"] = original_headers["Accept"] or "text/html" + local random_backend = get_destination() local res, err = httpc:request_uri(random_backend, { path = "/", method = "GET", - headers = { - ["X-Code"] = status or "404", - ["X-Format"] = ngx.var.httpAccept or "html", - } + headers = original_headers, }) if not res then @@ -26,8 +26,8 @@ function openURL(status) ngx.exit(500) end - if ngx.var.http_cookie then - ngx.header["Cookie"] = ngx.var.http_cookie + for k,v in pairs(res.headers) do + ngx.header[k] = v end ngx.status = tonumber(status) diff --git a/controllers/nginx/rootfs/etc/nginx/template/nginx.tmpl b/controllers/nginx/rootfs/etc/nginx/template/nginx.tmpl index d018d4ebb..c3da80de8 100644 --- a/controllers/nginx/rootfs/etc/nginx/template/nginx.tmpl +++ b/controllers/nginx/rootfs/etc/nginx/template/nginx.tmpl @@ -407,7 +407,7 @@ http { location / { {{ if .CustomErrors }} content_by_lua_block { - openURL(503) + openURL(ngx.req.get_headers(0), 503) } {{ else }} return 503; @@ -477,7 +477,7 @@ stream { location @custom_{{ $errCode }} { internal; content_by_lua_block { - openURL({{ $errCode }}) + openURL(ngx.req.get_headers(0), {{ $errCode }}) } } {{ end }}