Как настроить ETag на Nginx
Я использую Nginx в качестве веб-сервера и хочу реализовать метод кэширования браузера, чтобы пользователи сохраняли копии статических неизменных файлов локально и загружали только измененные файлы. Одно из предложений состояло в том, чтобы использовать временную метку файлов, чтобы определить измененные файлы и обновить их только, но это невозможно в моем случае, поскольку после каждого нового развертывания создается новая версия всего веб-приложения и все временные метки файлов изменение.
Я немного изучил заголовок ETag, и это показалось мне довольно хорошим решением, но я узнал, что Etags официально не поддерживаются Nginx.
Есть ли способ реализации Etags на Nginx или любых альтернативных решениях?
Ответы
Ответ 1
Обновите свой Nginx.
Syntax: etag on | off;
Default: etag on;
Context: http, server, location
This directive appeared in version 1.3.3.
Enables or disables automatic generation of the "ETag" response header field for static resources.
Источник: http://nginx.org/en/docs/http/ngx_http_core_module.html#etag
Ответ 2
Все последние версии Nginx (начиная с 2016 года) автоматически установят их.
Например:
location /img {
root /path/to/public;
}
и заголовок заголовка ответа Etag
+ Last-Modified
будут возвращены.