NGINX-如何为所有虚拟主机设置expires标头?

NGINX-如何为所有虚拟主机设置expires标头?,nginx,header,config,Nginx,Header,Config,我正在寻找一种方法来设置服务器范围的expires头,以便所有现有的或新的虚拟主机都配置为相同的。不幸的是,我无法在每个虚拟主机的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|m

我正在寻找一种方法来设置服务器范围的expires头,以便所有现有的或新的虚拟主机都配置为相同的。不幸的是,我无法在每个虚拟主机的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
块中,因此由所有服务器块及其位置块继承

本手册给出了将
expires
指令与
map
变量一起使用的示例。看

您可以使用
$request\u uri
而不是
$sent\u http\u content\u 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
块内,但位于任何
服务器
块外


有关详细信息,请参阅。

谢谢!成功了。您有一个额外的括号
…|rtf))(\?|$)max应为
。| rtf)(\?|$)最大值