使用模块修改Nginx响应头

Dawn5ky Lv2

Nginx响应头中默认带有很多基础信息,其中含有Nginx版本等信息,把这些全部发给你的访客并不是一个好办法,一些人可能会通过你的Nginx版本来进行针对性的攻击。

1. 准备headers-more-nginx-module

Openresty默认包含了headers-more-nginx-module,无需进行安装,Openresty用户请自行跳至第2.1步。 宝塔用户请自行跳至第1.3步。

1.1 下载模块

你可以从GitHub直接克隆(推荐):

1
git clone https://github.com/openresty/headers-more-nginx-module.git

也可以去仓库 自行下载并解压。

1.2 编译Nginx

只需要在编译的时候加上headers-more-nginx-module就可以了。如果你在/root下git克隆,那就像下面这样操作:

1
./configure --prefix=/usr/local/nginx --add-module=/root/headers-more-nginx-module

注意:你可能还需要其他Nginx模块,上面的指令仅作示范 如不是宝塔用户请跳至第2.1步

1.3 宝塔带模块编译安装Nginx

首先,你仍然需要git克隆或下载并解压headers-more-nginx-module。 在安装Nginx时,不要选极速安装,选择编译安装。 在安装时添加自定义模块--add-module=/root/headers-more-nginx-module

2. 模块使用方法

2.1 more_set_headers

more_set_headers可以对响应头进行修改,在Nginx配置中的server块内添加就可以。下面是使用实例(以修改Server字段为例):

1
2
3
4
server
{
more_set_headers 'Server: nginx';
}

如需一次修改多个头,则可以这么写:

1
more_set_headers 'Foo: bar' 'Baz: bah';

它还可以根据HTTP状态来修改响应头:

1
more_set_headers -s '404 500 503' 'Foo: bar';

2.2 more_clear_headers

它可以清除指定的响应头:

1
more_clear_headers 'X-Hidden-*';

它也可以根据HTTP状态清除响应头:

1
more_clear_headers -s 404 'Foo: baz';

2.3 more_set_input_headers和more_clear_input_headers

与前两位非常相似,只是它们在输入头(或请求头)上运行,并且只支持-t选项。 请注意,使用此指令中的-t选项意味着按Content-Type请求标头而不是响应标头进行过滤。

3. 验证模块是否正常运行

可以对你的站点curl一下,查看响应头即可。 例如:

1
curl puresky.fun:443 -I
  • 标题: 使用模块修改Nginx响应头
  • 作者: Dawn5ky
  • 创建于 : 2022-07-01 11:02:07
  • 更新于 : 2023-10-16 18:07:32
  • 链接: https://dawn.best/152/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论