加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

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

发布时间:2020-12-13 21:09:11 所属栏目: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/

我有多个网址需要使用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语句可以位于服务器作用域中,也可以位于最终处理请求的位置块中(取决于继承规则).有关详细信息,请参见this和this.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读