Welcome! Log In Create A New Profile

Advanced

Re: Патч ETags в NixOS

Maxim Dounin
January 13, 2024 08:22AM
Hello!

On Sat, Jan 13, 2024 at 10:34:08AM +0300, izorkin@gmail.com wrote:

> Добрый день, Максим.
>
> Вы писали 13 января 2024 г., 3:28:36:
>
> > Hello!
>
> > Hash-сумма файла в качестве ETag - в целом отличное решение,
> > проблема тут ровно одна: её нужно как-то получить, ибо системный
> > вызов fstat() никаких hash-сумм почему-то не возвращает. Считать
> > на лету - очевидно, плохой вариант для нагруженного сервера, так
> > как файл придётся на каждый запрос читать дважды. А получать
> > hash-сумму откуда-то ещё, скажем из внешнего файла или
> > extended-атрибутов - выглядит в лучшем случае дополнительной фичей
> > (смотри https://trac.nginx.org/nginx/ticket/2351 например).
>
> Теоретически можно было бы сделать предварительное сканирование
> файлов и генерация хэш сумм при старте в фоновом режиме, для тех
> файлов, которыее расположены только в /nix/store или любой другой
> директории, указанной пользователем. А результаты сохранить в кеш.
>
> Если генерировать хэш-сумму на лету, то зачем надо генерировать её
> каждый раз при повторном запросе? Можно же в кэше результат сохранить.
> Да и это надо делать только для тех файлов, которые имеют нулевую дату.
> А файлы в /nix/store меняются не часто, только при обновлении ОС.

Всё это предполагает какой-то кэш, который надо как-то отдельно
делать и конфигурировать, и выглядит в лучшем случае
дополнительной фичей.

> Вариант с файлами хэш-сумм выглядит более оптимальным. При генерации
> файлов в /nix/store можно дополнительно добавить возможность генерации
> хэш-суммы для каждого файла, который требуется для работы сайта. Таким
> же способом в некоторых приложениях организована генерация статических
> файлов в gzip и brotli форматы.

Именно об этом и тикет, да. Мне тоже вариант с файлами кажется
более интересным - с extended-атрибутами, возможно, код будет чуть
проще и, вероятно, быстрее, в силу меньшего количества необходимых
системных вызовов, но там сразу возникает масса проблем как с
портабельностью, так и с хранением/синхронизацией (e.g., в том же
nix store они могут просто не работать).

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

Патч ETags в NixOS

Anonymous User November 19, 2023 08:16AM

Re: Патч ETags в NixOS

Maxim Dounin November 19, 2023 09:58PM

Re: Патч ETags в NixOS

Anonymous User November 21, 2023 01:54PM

Re: Патч ETags в NixOS

Maxim Dounin November 24, 2023 08:02PM

Re: Патч ETags в NixOS

Anonymous User November 25, 2023 04:58AM

Re: Патч ETags в NixOS

Anonymous User January 07, 2024 01:58AM

Re: Патч ETags в NixOS

Maxim Dounin January 08, 2024 09:28PM

Re: Патч ETags в NixOS

Anonymous User January 12, 2024 02:36PM

Re: Патч ETags в NixOS

Maxim Dounin January 12, 2024 07:30PM

Re: Патч ETags в NixOS

Anonymous User January 13, 2024 02:36AM

Re: Патч ETags в NixOS

Maxim Dounin January 13, 2024 08:22AM

Re: Патч ETags в NixOS

Anonymous User January 13, 2024 10:02AM

Re: Патч ETags в NixOS

Maxim Dounin January 15, 2024 12:24PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 159
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready