Issue with If-Range header and X-Accel-Redirect requests with upstream Last-Modified header

Leigh Dyer lsd at
Tue Sep 6 02:45:46 UTC 2011


I have nginx 1.0.5 set up as a proxy in front of a Ruby/Ramaze 
application, using X-Accel-Redirect to efficiently handle sending large 
binary files by handing those transfers over to nginx. Range requests 
against this setup work just fine, but "If-Range" headers from the 
client are ignored -- the server always returns the requested range, 
even when the If-Range date doesn't match the file's Last-Modified date.

The problem seems to be due to this line in our config:

add_header Last-Modified $upstream_http_last_modified;

This sets the Last-Modified date on file sent to the client to the value 
sent to nginx from Ruby. With this line in the config, I get the 
If-Range issue described above. If I comment this out, Last-Modified is 
taken from the file's mtime instead, but If-Range works.

Is there any chance of getting this fixed?


More information about the nginx mailing list