Hello Ludo,

Ludovic Courtès <ludo@gnu.org> ezt írta (időpont: 2019. aug. 28., Sze, 22:32):

Gábor Boskovits <boskovits@gmail.com> skribis:

> we should create a file with the git last modification time of the files,
> updated when there is a new commit in the repo => last-modified
> we should create a file with some hash of the files, updated when there is
> a new commit in the repo => etag
> we could restrict these operations to the files modified since the last
> checkout.
> Retrieve these with embededd perl.
> Wdyt?

What would the config look like?  AFAICS our ‘nginx’ package doesn’t
embed Perl, and I think it’s better this way.  :-)  Can we do that with
pure nginx directives?

We create /srv/guix.gnu.org (as a symlink) with the correct mtime¹.  If
we can tell nginx to use it as the ‘Last-Modified’ date, that’s perfect.

I was thinking about this. Yes, we can solve that with pure nginx. There is an issue however.
It invalidates all cached entries on update, so files not modified will also need to be downloaded again.

The easiest way to do that would be to simply generate an nginx config snippet at a configurable location,
setting up the mtime and etags variable, and include that from the main config.
If this would be ok, then I will have a look at implementing this.


¹ https://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/hydra/berlin.scm#n212

Best regards,

OpenPGP Key Fingerprint: 7988:3B9F:7D6A:4DBF:3719:0367:2506:A96C:CF63:0B21