Директива Nginx expires с переменной

Я пытаюсь установить динамический заголовок срока действия. Это в основном моя конфигурация:

      # http context
map $request_uri $expires_time {
 
   default -1;
 
   *.js max;
}

server {
  # server_name/proxy_headers/listen/ssl
  location / {
    
    expires $expires_time;
    proxy_pass http_serverving_docker_container.docker;
  }
}

Я получаю это сообщение об ошибке наnginx -t:

      nginx: [emerg] "expires" directive invalid value in /etc/nginx/sites-enabled/config:57 # <- this is the expires line
nginx: configuration file /etc/nginx/nginx.conf test failed

Если я заменяю его числом (например: -1), то все работает отлично. Разве мне не разрешено использовать здесь переменные? Я просмотрел страницу руководства на предмет срока действия и не нашел упоминания об этом.

Дополнительная информация: Версия Nginx: nginx/1.6.2 Версия Linux: Debian GNU/Linux 8 (Джесси)

1 ответ

Вы используете устаревшую версию nginx в устаревшем дистрибутиве Linux. Оба должны быть обновлены как можно скорее.

В частности:

  • Поддержка LTS в Debian 8 прекращена . Он не получает никаких дополнительных обновлений, даже обновлений безопасности. Подключать эту систему к Интернету крайне рискованно.
  • Как указано в документации , использование переменной в файле nginxexpiresдирективе требуется как минимум версия 1.7.9.
Другие вопросы по тегам