Как настроить 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 будут возвращены.