Header modification with X-Accel-Redirect

Denis F. Latypoff denis at gostats.ru
Thu May 21 08:59:05 MSD 2009


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 :)

> Brice

> Begin forwarded message:

>> From: Brice Leroy <bbrriiccee at gmail.com>
>> Date: May 20, 2009 4:41:43 PM PDT
>> To: nginx at sysoev.ru
>> Subject: Header modification with X-Accel-Redirect
>>
>> 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 :(
>>
>> - 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;
>>    }
>> }
>>




> __________ NOD32 4090 (20090520) Information __________

> This message was checked by NOD32 antivirus system.
> http://www.eset.com



-- 
Best regards,
 Denis                            mailto:denis at gostats.ru






More information about the nginx mailing list