Log response header from upstream

Maxim Dounin mdounin at mdounin.ru
Sun Nov 6 21:15:04 UTC 2011


Hello!

On Sun, Nov 06, 2011 at 09:48:08PM +0100, Kamil Gorlo wrote:

> Hi,
> 
> I have some problem with access log combined with X-Accel-Redirect
> requests. In my case I have Nginx set up as load-balancer to group of
> application servers. These servers return some special header in every
> request - I need to log value of this special header (lets call it
> 'X-user') in access log - also I do not want to expose this header to
> the world (proxy_hide_header helps here).
> 
> Everything seems to work, but when there is X-Accel-Redirect request I
> have empty field in access log because of subrequest
> ($upstream_http_x_special is cleared because of subrequest, if I
> understand this mechanism correctly). How to make this work for every
> request?
> 
> Here is my config:
> 
> http {
>   log_format extended '$request $upstream_http_x_user';
>   access_log /var/log/nginx/access.log extended;
> 
>   ...
> 
>   server {
>     listen 80;
> 
>     location / {
>       proxy_pass http://backend;
>       proxy_hide_header X-User;
>     }
> 
>     location /files {
>       internal;
>       proxy_pass http://filestore;

Workaround is to use

        set $x_user $upstream_http_x_user;

here (and to log $x_user instead).

>     }
>   }
> }


Maxim Dounin



More information about the nginx mailing list