Header modification with X-Accel-Redirect


#1

Hi,
I’m using X-Accel-Redirect and I would like to log modified header
information at the same time. But when X-Accel-Redirect clear return
his own header , so I can never get the clip variable :frowning:

  • Brice

My Django view

response = HttpResponse(status=200)
response[‘Cache-Control’] = ‘no-cache’
response[‘Pragma’] = ‘no-cache’
response[‘Content-Type’] = “”
response[‘clip’] = one_time_access.clip.id
response[‘method’] = ‘one_time_access_view’
response[‘X-Accel-Redirect’] = url
return response

and my nginx configuration:

server {
listen 80;
server_name xxx.yyy.com;

 log_format main
'[$time_local]\n'
     'ip=$remote_addr\n'
     'request="$request"\n'
     'bytes=$body_bytes_sent\n'
'clipid=$sent_http_clip\n'
'method=$sent_http_method\n'
'"$sent_http_pragma"=$sent_http_pragma'
'_EOE_\n';

 access_log  /home/kev/logs/access.log main;
 error_log  /home/kev/logs/error.log;

 #add_header           Front-End-Https    on;

 location / {
     proxy_pass http://127.0.0.1:8899/;
     #proxy_set_header X-Forwarded-Protocol "https";
     proxy_set_header  Host       $host;
     proxy_set_header  X-Real-IP  $remote_addr;
     client_max_body_size       3000m;

}

 location /media/ {
     alias /home/kev/clipbuilder/media/;

internal;
}

 location /static/ {
     alias /home/kev/clipbuilder/static/;
 }

 location /adminmedia/ {
     alias /usr/local/src/django-trunk/django/contrib/admin/media/;
 }

 error_page   500 502 503 504  /50x.html;
 location = /50x.html {

root /var/www/nginx-default;
}
}


#2

My previous email was maybe unclear. I’m trying to log the bandwidth
usage per clip I serve. because every clip are static file, I’m using
x-accel-redirect to serve them. So I’m adding clip value to the header
to log it using nginx with body_bytes_sent so I can know how much
bandwidth has been used for this clip. But it seams that using x-
accel-redirect doesn’t allow header modification because my log don’t
get the information. But if I remove the x-accel-redirect (of course
in this case I don’t get the file) the clip value injected in the
header appear in my logs ! Any idea to make this value appear when I
use X-Accel-Redirect ?

Thanks :slight_smile:

Brice

Begin forwarded message:


#3

Hello Brice,

Thursday, May 21, 2009, 7:03:38 AM, you wrote:

My previous email was maybe unclear. I’m trying to log the bandwidth
usage per clip I serve. because every clip are static file, I’m using
x-accel-redirect to serve them. So I’m adding clip value to the header
to log it using nginx with body_bytes_sent so I can know how much
bandwidth has been used for this clip. But it seams that using x-
accel-redirect doesn’t allow header modification because my log don’t
get the information. But if I remove the x-accel-redirect (of course
in this case I don’t get the file) the clip value injected in the
header appear in my logs ! Any idea to make this value appear when I
use X-Accel-Redirect ?

location /media/ {
    add_header   clip    $upstream_http_clip;
    add_header   method  $upstream_http_method;
    alias /home/kev/clipbuilder/media/;
    internal;
}

Thanks :slight_smile:

Brice

Begin forwarded message:

  • Brice
    return response
    ‘request="$request"\n’

    internal;
    

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root /var/www/nginx-default;
    }
    }

__________ NOD32 4090 (20090520) Information __________


#4

Thanks Denis ! It’s working.

NGinx rocks !