NGINX - 我如何为所有虚拟主机设置过期 headers?
NGINX - How would I set expires headers for all virtual hosts?
我正在寻找一种方法来设置服务器范围的过期时间 headers 以便所有现有的或新的虚拟主机都配置相同。不幸的是,我无法在每个虚拟主机的 conf 文件中执行此操作,因此我正在寻找一种方法来使以下指令在服务器范围内生效。
location ~* .(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg
|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid
|midi|wav|bmp|rtf)$ {
expires max;
log_not_found off;
access_log off;
}
expires
指令可以放在 http
块中,因此被所有服务器块及其位置块继承。
手册显示了使用带有 map
变量的 expires
指令的示例。参见 this document。
您可以使用 $request_uri
而不是 $sent_http_content_type
来匹配您现有的正则表达式并实现相同的行为:
map $request_uri $expires {
default off;
~*\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)(\?|$) max;
}
expires $expires;
两个指令都放在 http
块内但在任何 server
块外。
详情见this document。
我正在寻找一种方法来设置服务器范围的过期时间 headers 以便所有现有的或新的虚拟主机都配置相同。不幸的是,我无法在每个虚拟主机的 conf 文件中执行此操作,因此我正在寻找一种方法来使以下指令在服务器范围内生效。
location ~* .(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg
|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid
|midi|wav|bmp|rtf)$ {
expires max;
log_not_found off;
access_log off;
}
expires
指令可以放在 http
块中,因此被所有服务器块及其位置块继承。
手册显示了使用带有 map
变量的 expires
指令的示例。参见 this document。
您可以使用 $request_uri
而不是 $sent_http_content_type
来匹配您现有的正则表达式并实现相同的行为:
map $request_uri $expires {
default off;
~*\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)(\?|$) max;
}
expires $expires;
两个指令都放在 http
块内但在任何 server
块外。
详情见this document。