Absolute rather than relative times in expires directives

Francis Daly francis at daoine.org
Wed Nov 18 13:45:10 UTC 2015

On Tue, Nov 17, 2015 at 03:07:33AM -0500, rgrraj wrote:

Hi there,

> The topic was the same one I was looking for. But we have specific idea of
> setting up the expire value.  We need expires to be at every 2h hours at the
> same time to be on every 24hours, ie: midnight. Can you help me with how to
> configure the same with 2h as well as for midnight night. 

http://nginx.org/r/expires shows how you can set the value, and shows
that it accepts a variable.

http://nginx.org/r/map shows how you can set one variable from the value
of another.

http://nginx.org/en/docs/http/ngx_http_core_module.html#variables shows
the list of "always there" variables; two of them refer to "local time".

So putting them all together:

  map $time_iso8601 $expires {
    default "2h";
    ~T22 "@00h00";
    ~T23 "@00h00";

  expires $expires;

(in the right parts of the config file) might do some of what you want.

Probably you will have to adjust some of those numbers to match "local
midnight" or "UTC midnight"; and possibly you will want to adjust the
regex to allow for the local timezone offset -- see the $time_iso8601

But that should be a start.

Francis Daly        francis at daoine.org

More information about the nginx mailing list