Nginx取消显示nginx版本信息
背景
- Nginx默认会在响应头中返回Server信息,将Nginx的版本和服务器的信息展示出来,这玩意儿还是有风险的,所以希望能够修改掉这个Server的字段信息,亦或是直接不显示这个字段的信息,因此遇到了headers-more-nginx-module
- 提供两种修改方式:
- 去除响应头的Server显示
- 通过headers-more-nginx-module修改响应头
配置方式
去除server显示
打开nginx.conf配置文件,在http模块(或者对应的server模块)中添加如下内容
1 | off表示关闭响应头部的server版本显示,on则相反 |
headers-more-nginx-module修改响应头
下载headers-more-nginx-module版本的包:https://github.com/openresty/headers-more-nginx-module/releases
1
2
3
4
5
6
7根据自己的需要下载对应的版本包
wget https://github.com/openresty/headers-more-nginx-module/archive/v0.33.tar.gz
tar -zxvf v0.33.tar.gz
下载nginx的源码。必须与已安装的nginx保持一致
wget http://nginx.org/download/nginx-1.10.0.tar.gz
tar xzvf nginx-1.10.0.tar.gz到nginx源码的目录,进行编译
1
2
3
4
5
6
7查看已有的nginx编译时所带的参数
nginx -V
编译时,添加参数:--add-dynamic-module=/path/to/the/headers-more-nginx-module
cd nginx-1.10.0
./configure [省略参数] --add-dynamic-module=/home/test/Desktop/wuxiang/headers-more-nginx-module/
make编译完毕后,将objs文件夹下生成的的ngx_http_headers_more_filter_module.so复制到/usr/lib/nginx/modules/目录下
1
2
3cd objs
这个路径根据需要自己设置,导入模块的时候自己注意路径即可
sudo cp ngx_http_headers_more_filter_module.so /usr/lib/nginx/modules/打开nginx.conf配置文件,在http模块(或者对应的server模块)中添加如下内容:
1
2
3
4
5导入之前编译好的模块
load_module /path/to/your/modules/ngx_http_headers_more_filter_module.so;
然后在http模块中配置Server信息,或者在server模块中配置也可
more_set_headers "Server: hello";配置完成后,重启nginx服务,然后打开前台看看响应头是否有变化
1
2sudo nginx -t
sudo service nginx -s reload
参考文献
官方文档:http://nginx.org/en/docs/http/ngx_http_core_module.html#server_tokens
安装参考:https://github.com/openresty/headers-more-nginx-module#installation