Nginx:如何仅将标头添加到特定文件和文本

前端之家收集整理的这篇文章主要介绍了Nginx:如何仅将标头添加到特定文件和文本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有多个网址需要使用Nginx添加相同的标头集.这是文件名.

File Group1
    https://www.example.com/news/2017-08-03/article-xyz/
    https://www.example.com/news/2017-08-03/article-xyz/topics/
    https://www.example.com/news/2017-08-03/article-xyz/gallery/

File Group2
    https://www.example.com/news/2017-08-02/article-abc/
    https://www.example.com/news/2017-08-02/article-abc/topics/
    https://www.example.com/news/2017-08-02/article-abc/gallery/

所以在这种情况下,文件组1需要:

add_header Cache-Tag  article-xyz;

文件组2需要:

add_header Cache-Tag  article-abc;

所以Nginx.conf应该是这样的

  location /news/ {
        add_header Cache-Tag  article-abc;
    }

但是如何在添加标头中动态应用它?

最佳答案
一种解决方案是在$request_uri值上使用map指令.例如:

map $request_uri $cache_tag {
    default        "";
    ~/article-xyz/ "article-xyz";
    ~/article-abc/ "article-abc";
}
server {
    ...
    add_header Cache-Tag $cache_tag;
    ...
}

地图块位于服务器块之外(如图所示). add_header语句可以位于服务器作用域中,也可以位于最终处理请求的位置块中(取决于继承规则).有关详细信息,请参见thisthis.

不要在map指令中使用捕获,因为它不起作用.

原文链接:https://www.f2er.com/nginx/435116.html

猜你在找的Nginx相关文章