Я использую nginx для сервера моего статического контента, есть ли способ, которым я могу установить заголовки expires для каждого файла, который соответствует определенному правилу? Например, я могу установить заголовок expires для всех файлов с расширением .css?
96
root
набором, в этом случае вы должны добавить директивы к этому блоку. (Я знаю, что это 2 года поздно, но для будущих граждан)location
директиваexpires
директиваисточник
У меня недостаточно репутации, чтобы комментировать, почему принятый ответ может привести к тому, что файлы больше не будут отображаться, но я понял это и хотел бы помочь!
Укороченная версия:
Убедитесь, что у вас есть корневой каталог для вашего блока местоположения на изображениях, если у вас нет глобального набора!
Длинная версия ниже:
Прежде всего, мой метод реализации этого решения был действительно похож на этот ответ , где вы пишете правило (как в принятом ответе):
в файл img-cache.conf
и затем включите этот файл в вашу
server {...}
директиву.Мой пример somesite.com в моей папке сайтов, доступных:
Таким образом, вы можете добавить блок местоположения кэширования изображений для нескольких сайтов, которые вы можете запустить.
Во-вторых, у меня есть ситуация, когда мой / var / www / содержит две папки, которые я разрешаю как public_html - безопасную и обучающую, поэтому мне нужно сделать определенные блоки местоположения в директиве сервера моего сайта, выделяя эти папки.
Поэтому у меня нет глобального корневого каталога .
Поэтому, когда вы создаете свои блоки местоположения изображений, вы, возможно, не предоставляете им корневой каталог, из которого можно искать изображения!
Мое решение было тогда:
источник
.conf
. Соответствующая папка , в ,nginx/1.14.0 (Ubuntu)
кажется/etc/nginx/snippets/
.Вы также можете установить срок действия до максимума. Вот директива, которую я использую для CSS и JS.
источник
Все вышеупомянутые решения будут лишать возможности иметь разные псевдонимы для разных путей. Также для того, чтобы все ваши истечения срока действия кэша были в одном месте, вы должны использовать nginx map следующим образом.
...
Off
отключает кэширование,epoch
(для эпохи Unix) приводит к тому, что ресурс всегда обновляется,max
устанавливает дату в максимальное значение браузера.Изображение ~ соответствует любым типам изображений.
Подробнее о картах nginx можно узнать на сайте http://nginx.org/en/docs/http/ngx_http_map_module.html .
источник
$sent_http_content_type
есть"text/css;charset=UTF-8"
приведенное выше выражение потерпит неудачу.Если у вас есть одно место, где хранятся все ваши статические файлы, что-то вроде этого подойдет ...
Принятый ответ заставил nginx не найти ни одного из моих статических файлов. Не совсем уверен, почему, но это простая альтернатива.
источник
/static
папку (что бы вы ни указали в месте) в конце псевдонима (сразу после.../files
в примере).Так как это очень старая тема, и я нашел современный удивительный учебник.
Возможно, вы хотите проверить это
Как реализовать кэширование в браузере с помощью модуля заголовка Nginx в Ubuntu 16.04
источник