Директива 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 прекращена . Он не получает никаких дополнительных обновлений, даже обновлений безопасности. Подключать эту систему к Интернету крайне рискованно.
- Как указано в документации , использование переменной в файле nginx
expires
директиве требуется как минимум версия 1.7.9.