Назад | Перейти на главную страницу

Обслуживание файла с заголовком expires в зависимости от того, когда он был в последний раз изменен

В nginx есть способ условно обслуживать файл с разными заголовками с истечением срока действия в зависимости от того, когда файл был последний раз изменен? Например, если foo был изменен в течение последней недели, тогда я хочу, чтобы срок его действия истек через несколько часов, в противном случае я хочу, чтобы он истек через несколько дней.

Предполагается, что браузеры уже имеют описанную вами функциональность, поэтому на самом деле нет особого смысла реализовывать ее в nginx.

Стандартный nginx имеет expires директива, которая позволяет вам использовать несколько видов статических выражений в стиле смещения без сравнения, но не описываемые вами динамические.

Я не думаю, что какие-либо из стандартных модулей, которые по умолчанию скомпилированы в nginx, могут делать то, что вы здесь запрашиваете - динамическое истечение срока действия с различным смещением в зависимости от того, как давно был изменен файл.

Однако есть ngx_http_perl_module, который является официальным экспериментальным perl модуль непосредственно от создателей nginx, что позволяет вам использовать находчивый язык Perl непосредственно из файла конфигурации nginx.

Обратите внимание, что это http_perl_module не компилируется по умолчанию по очевидным причинам (очевидно, требует perl и т. д.) и считается в высшей степени экспериментальным - используйте с осторожностью.