more_clear_headers
指令 `more_clear_headers` 从发送到客户端的响应中移除指定的 HTTP 响应头。
NGINX Headers More dynamic module
·
httpserverlocationif in location
语法more_clear_headers header1 [header2 ...];
默认值none
上下文http, server, location, if in location
参数1+
说明
more_clear_headers 指令属于 NGINX Headers More 动态模块,该模块通过允许对 HTTP 头进行高级控制来扩展 NGINX 的功能。该指令允许您清除或移除发送给客户端的响应中的特定头。它可用于去除不需要的默认头,例如 Server、X-Powered-By 等,这些头可能会泄露开发者出于安全或合规原因希望隐藏的信息。
在使用 more_clear_headers 时,您可以将一个或多个头名称作为参数指定。每个指定的头都会从响应中移除,您也可以连续使用多个 more_clear_headers 指令来一次性清除多个头。该指令可在多种上下文中使用,包括 http、server、location,甚至在 location 内部的 if 指令中使用,这使其在不同配置需求下非常灵活。需要注意的是,指定的头名称不区分大小写,这意味着您无论使用何种大小写形式都应指定适当的名称,因为 HTTP 头通常不区分大小写。
如果您希望基于特定条件(例如 MIME 类型或响应状态码)有选择地清除头,可以将该指令与其他相关指令结合使用。但是,请记住,more_clear_headers 不允许按 MIME 类型或状态码进行额外过滤,这一点与模块中如 more_set_headers 等具有更高级选项的某些命令不同。
配置示例
location /example {
more_clear_headers 'X-Powered-By';
more_clear_headers 'Server';
}⚠
确保头部名称没有拼写错误,因为它们不区分大小写,但必须与响应中的名称完全匹配。
⚠
在错误的上下文中使用此指令可能导致意外行为,尤其是在嵌套的 location 中或在 if 指令中。
⚠
移除某些头部可能会影响应用程序的功能或安全特性。