Nginx 带有变量的 expires 指令

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),则一切都会正常工作。我不允许在这里使用变量吗?我仔细阅读了 expires 的手册页,但没有看到对此的提及。

附加信息:Nginx 版本:nginx/1.6.2 Linux 版本:Debian GNU/Linux 8 (jessie)

答案1

您在过时的 Linux 发行版上使用过时的 nginx 版本。两者都需要尽快升级。

尤其:

  • Debian 8 已过时LTS 支持结束。它不再接收任何更新,甚至没有安全更新。将此系统连接到互联网是非常危险的。
  • 作为文档指出,在 nginx 指令中使用变量expires至少需要 1.7.9 版本。

相关内容