【问题标题】:set not add header in nginx设置不在 nginx 中添加标头
【发布时间】:2014-09-23 06:46:05
【问题描述】:

有没有办法像在 apache 中一样在 nginx 中设置/替换/合并标头?

关于这个链接http://nginx.org/en/docs/http/ngx_http_headers_module.html 看来,它只能添加一个标题。这会带来一些问题,如果标头已经设置(例如通过 php 代码)并且应该替换/更改为正确的值。

对于 apache 可以设置/追加/合并和添加,http://httpd.apache.org/docs/2.2/mod/mod_headers.html

这是一个基本功能,所以在 nginx 中应该可以,但我找不到。

【问题讨论】:

    标签: apache nginx http-headers


    【解决方案1】:

    看看 HttpHeadersMoreModule。

    此模块允许您添加、设置或清除您指定的任何输出或输入标头。

    这是标准标头模块的增强版本,因为它提供了更多实用程序,例如重置或清除“内置标头”,例如 Content-Type、Content-Length 和 Server。

    它还允许您使用 -s 选项指定可选的 HTTP 状态代码标准,使用 -t 选项指定可选的内容类型标准,同时使用 more_set_headers 和 more_clear_headers 指令修改输出标头。

    来源:http://wiki.nginx.org/HttpHeadersMoreModule

    【讨论】:

    • 我更喜欢内置选项,但它似乎不受支持,需要安装。所以我想我需要安装它,但如果我是对的,我需要手动跟踪我安装的 nginx 版本是否更新并且我需要安装这个包的新版本?无论如何,谢谢你的链接。
    【解决方案2】:

    实际上 Nginx 的“add_header”指令不会覆盖头部,而是在头部存在时添加值。 但是,从文档中并不清楚:http://nginx.org/en/docs/http/ngx_http_headers_module.html#add_header

    但在 HttpHeadersMoreModule 文档 (https://github.com/openresty/headers-more-nginx-module#more_set_headers) 中它说: “如果你想以增量方式添加标题,请改用标准的 add_header 指令。”

    【讨论】:

      猜你喜欢
      • 2012-11-15
      • 1970-01-01
      • 2015-06-10
      • 2017-04-17
      • 1970-01-01
      • 2015-09-10
      • 1970-01-01
      • 2019-04-26
      • 1970-01-01
      相关资源
      最近更新 更多