Issue with If-Range header and X-Accel-Redirect requests with upstream Last-Modified header
lsd at wootangent.net
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