单是要隐藏 nginx 版本号信息只需要在 nginx 配置文件全局段添加 server_tokens off;然后重启 nginx 即可。
传统部署的 nginx ,要实现隐藏或修改响应头 server 信息的方法目前只有重新编译部署。
一、首先查看原始nginx的版本信息以及编译信息
/usr/local/nginx/sbin/nginx -V
1、下载同版本nginx,并解压(我这里使用的是nginx-1.20.2版本)
tar xf nginx-1.20.2.tar.gz
2、进入解压后的nginx目录,修改nginx的Banner信息
cd nginx-1.20.2/
vim src/core/nginx.h
3、将以上信息修改为——如下图
二、执行编译(参考第一步 -V 查看到的原nginx编译信息)
./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_sub_module --with-http_ssl_module --with-pcre
1、执行 make
make
2、查看是否已经生效
./objs/nginx -V
3、为保险起见备份原来的nginx程序
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
4、停止nginx
/usr/local/nginx/sbin/nginx -s stop
5、将新编译好的nginx替换掉原始的nginx
cp objs/nginx /usr/local/nginx/sbin/nginx
6、启动nginx
/usr/local/nginx/sbin/nginx
测试访问,可以看到响应头的 server 信息已经修改为我们自定义的信息了,不再显示 nginx 和版本号信息。