Header modification with X-Accel-Redirect

Brice Leroy bbrriiccee at gmail.com
Wed May 27 02:26:58 MSD 2009


Thanks Denis ! It's working.

NGinx rocks !


On May 20, 2009, at 9:59 PM, Denis F. Latypoff wrote:

> 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