Hello!

On Sun, Nov 19, 2023 at 04:15:42PM +0300, izor...@gmail.com wrote:

> Здравствуйте.
> 
> В NixOS используется патч ETags для корректного определения изменения
> файла, расположенного в папке /nix/store. В этой папке все файлы имеют
> временную метку установленную в 0. Поэтому без использования этого
> патча файлы в кэше перестают обновляться. Возможно ли добавить этот
> патч в Upstream?
> Подробнее:
> https://github.com/NixOS/nixpkgs/blob/master/doc/packages/nginx.section.md
> 
> Либо добавить дополнительный параметр, в котором можно указать папки
> для которых используется только механизм ETags.

Если я правильно понимаю, речь про вот этот патч:

https://github.com/NixOS/nixpkgs/blob/nixos-23.05/pkgs/servers/http/nginx/nix-etag-1.15.4.patch

Патч выглядит, скажем так, непригодным для включения куда-либо.

Если для задачи достаточно не выдавать пользователю Last-Modified, 
а выдавать только ETag (этого, вероятно, будет достаточно как 
минимум если в URI виден полный путь из /nix/store, включающий 
hash, а также в остальных случаях, если на размер можно полагаться для 
идентификации файлов), то просто убрать Last-Modified из ответов 
можно стандартным механизмом add_header 
(http://nginx.org/r/add_header):

    add_header Last-Modified "";

Соответственно у ответов будет только ETag, сформированный 
nginx'ом из даты модификации файла (0 в случае /nix/store) и 
размера файла.

-- 
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить