atom feed6 messages in ru.sysoev.nginxRe: Special headers and X-Accel-Redirect
FromSent OnAttachments
Kamil GorloJun 6, 2011 6:14 am 
Kamil GorloJun 6, 2011 6:15 am 
Kamil GorloJun 6, 2011 7:33 am 
António P. P. AlmeidaJun 6, 2011 7:39 am 
Igor SysoevJun 6, 2011 8:09 am 
wideawakeAug 28, 2012 4:43 pm 
Subject:Re: Special headers and X-Accel-Redirect
From:Kamil Gorlo (kgo@gmail.com)
Date:Jun 6, 2011 6:15:22 am
List:ru.sysoev.nginx

Oh, and version:

nginx: nginx version: nginx/1.0.4 nginx: TLS SNI support enabled nginx: configure arguments: --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_gzip_static_module --add-module=../modules/upstream_hash --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --prefix=/var/lib/nginx --http-client-body-temp-path=/var/lib/nginx/client_body_temp --http-proxy-temp-path=/var/lib/nginx/proxy_temp --http-fastcgi-temp-path=/var/lib/nginx/fastcgi_temp --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock

Hi guys,

I have small problem with file download using X-Accel-Redirect. I am using Nginx as proxy before some REST API application, some of the requests are for big files which are located at other host - so I am using X-Accel-Redirect to download them. But I have also some metadata connected with file which I want to return in X-metadata header from REST API.

So, here is my config:

   server {        listen 80;        listen 443 ssl;

       server_name some-service.pl;

       ssl_certificate /etc/ssl/certs/some-service.pl.pem;        ssl_certificate_key /etc/ssl/private/some-service.pl.key;

       client_max_body_size 100M;        client_body_buffer_size 128k;

       location / {            if ($http_x_user = "") {              return 502;            }

           proxy_pass http://api;            proxy_set_header Host $host;            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;   # client, proxy1, proxy2, ...

       }

       location /files {            internal;            rewrite ^/files(.*)$ $1 break;

           proxy_pass http://filestore;            proxy_hide_header Content-Type;            proxy_hide_header Content-Disposition;

           set $x_metadata $upstream_http_x_metadata;

           add_header X-metadata $x_metadata;        }    }

I am using this trick with set to temporary variable and add_header with this variable (which I've found somewhere on this list), but this is not working. Even simple:

set $x_std "testest"; add_header X-metadata $x_std;

does not work for me.

Could please somebody tell me what could be wrong?

Thanks,