Special headers and X-Accel-Redirect

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


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

--
kgs


On Mon, Jun 6, 2011 at 3:15 PM, Kamil Gorlo <kgorlo at gmail.com> wrote:
> 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