Re: Патч ETags в NixOS
izorkin на gmail.com
izorkin на gmail.com
Сб Янв 13 07:34:08 UTC 2024
Добрый день, Максим.
Вы писали 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 форматы.
--
С уважением,
Izorkin mailto:izorkin на gmail.com
Подробная информация о списке рассылки nginx-ru