header handling
Frank Liu
gfrankliu at gmail.com
Sat Aug 15 07:15:47 UTC 2015
I made the below patch and can now use $upstream_http_x_header for
logformat to capture the header X.header in the access log. Does anybody
see any issues with the patch?
--- src/http/ngx_http_variables.c.orig 2015-08-15 02:19:31.635328112 +0000
+++ src/http/ngx_http_variables.c 2015-08-15 02:19:42.051541422 +0000
@@ -897,6 +897,8 @@
} else if (ch == '-') {
ch = '_';
+ } else if (ch == '.') {
+ ch = '_';
}
if (var->data[n + prefix] != ch) {
Thanks!
Frank
On Fri, Aug 14, 2015 at 1:04 PM, Frank Liu <gfrankliu at gmail.com> wrote:
> Thanks ryd994 for the suggestion! 1 and 2 are working now.
> Anyone else has any ideas on 3?
>
> Frank
>
> On Fri, Aug 14, 2015 at 10:36 AM, ryd994 <ryd994 at 163.com> wrote:
>
>> Hi,
>>
>> 1) Use mapped variable
>>
>> map $http_<header you want to change> $<some variable name> {
>> "" "value if nit set";
>> default $http_<header you want to change>;
>> }
>> Then you can set header with the new variable.
>>
>> 2) I guess you can use map, too. Use $upstream_http_*name* instead.
>>
>> 3) Sorry, I have no idea on this.
>>
>> On Sat, Aug 15, 2015, 00:51 Frank Liu <gfrankliu at gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I have a few questions regarding headers in nginx:
>>>
>>> 1) I use proxy_set_header to pass a header to upstream servers. Is it
>>> possible to honor the header if the incoming request already has it?
>>>
>>> 2) I want to pass the "Server" header from upstream response to clients,
>>> and if there is no such response header, I'd like to add a customer one. Is
>>> it possible via core nginx or any third party modules? Currently I am using
>>> "proxy_pass_header Server" without any check. I am not sure what happens if
>>> upstream response doesn't have it.
>>>
>>> 3) I am trying to log an upstream response header to access log but it
>>> has a "dot" in it (say X.header). I don't have any control to the upstream
>>> servers. On nginx side, I tried setting "ignore_invalid_headers off" in the
>>> server block, and in the logformat, I tried a few things for the the
>>> column: $upstream_http_x.header $upstream_http_x_header
>>> $upstream_http_x-header, but nothing works. Any ideas how I can log it?
>>>
>>> Thanks!
>>> Frank
>>> _______________________________________________
>>> nginx mailing list
>>> nginx at nginx.org
>>> http://mailman.nginx.org/mailman/listinfo/nginx
>>
>>
>> _______________________________________________
>> nginx mailing list
>> nginx at nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20150815/3c761625/attachment.html>
More information about the nginx
mailing list