使用模块修改Nginx响应头
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 | server |
如需一次修改多个头,则可以这么写:
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 进行许可。
Recommendation
Recommendation
评论