Special headers and X-Accel-Redirect

Kamil Gorlo kgorlo at gmail.com
Mon Jun 6 17:15:05 MSD 2011


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,

--
kgs



More information about the nginx mailing list