SSI and expires header
Brian Akins
brian at akins.org
Wed Jul 4 13:10:02 UTC 2012
On Jul 4, 2012, at 5:56 AM, James Lee wrote:
>
> location /ssi/ {
> ssi on;
> expires 1w;
> add_header Last-Modified 'not added';
> }
> location /ssi-with-last-modified/ {
> proxy_pass http://localhost/ssi/;
> proxy_set_header Host www.HOST.co.uk;
> add_header Last-Modified 'this works!';
> }
>
With this config, every request will actually cause two hits to nginx.
Last-Modified is removed from SSI in every web server I know because you'd really need to show the last modified time of the newest included element. Also, if there are dynamic elements, how do you handle those?
I did simple Lua header filter that adds the current time to Last-Modified when needed. Depending on which browsers you need to support, however, just adding Expires and/or Cache-Control headers is enough to get the browser to cache. I know that not all browsers behave correctly, however.
Something simple like:
header_filter_by_lua '
ngx.header["Last-Modified"] = ngx.http_time(ngx.time())
';
Of course, you may want to check to see if it's already been set, only set if a flag is present, etc.
The "proxy to yourself" solution is unacceptable for a busy site.
--Brian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20120704/a9114b18/attachment.html>
More information about the nginx
mailing list