我正在寻找一种设置服务器范围的过期标头的方法,以便所有现有或新的虚拟主机都配置相同。不幸的是,我无法在每个虚拟主机的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;
}
答案 0 :(得分:3)
expires
指令可以放在http
块中,因此由所有服务器块及其位置块继承。
本手册显示了使用expires
指令和map
变量的示例。请参阅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。