Log response header from upstream

Kamil Gorlo kgorlo at gmail.com
Sun Nov 6 20:48:08 UTC 2011


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

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 {
      proxy_pass http://filestore;


Kamil Gorlo

More information about the nginx mailing list