1、通过配置文件隐藏版本号
注:该方法只是在某一方面隐藏,不是彻底隐藏,比如php探针,还是可以看到nginx具体版本信息
1.1 配置文件nginx.conf添加server_tokens off
1.1 重启nginx
[root@node1 ~]# /apps/nginx/sbin/nginx -t
nginx: the configuration file /apps/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /apps/nginx/conf/nginx.conf test is successful
[root@node1 ~]# /apps/nginx/sbin/nginx -s reload
可以查看到现在头部信息中版本号已不存在
2、通过更改源码信息重新编译修改版本信息
该方法是彻底修改版本信息,一般是安装之前就修改源码,如安装过的,就要修改源码重新编译
2.1 修改源码信息
[root@node1 share]# cd /usr/local/src/
[root@node1 src]# vim nginx-1.18.0/src/http/ngx_http_header_filter_module.c
#原始内容
static u_char ngx_http_server_string[] = "Server: nginx" CRLF;
static u_char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;
#修改为如下信息
#注:如果nginx配置了server_tokens off,这里第50行可以不修改
49 static u_char ngx_http_server_string[] = "Server: FMC" CRLF;
50 static u_char ngx_http_server_full_string[] = "Server: " CRLF;
49行是定义响应报文中的 server字段信息,可将Server后面的nginx改为自定义名称
2.2、重新编译安装
[root@node1 src]# /apps/nginx/sbin/nginx -V
nginx version: nginx/1.18.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.1.1j 16 Feb 2021
TLS SNI support enabled
configure arguments: --prefix=/apps/nginx --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module --with-http_ssl_module
[root@node1 src]# /apps/nginx/sbin/nginx -s stop
[root@node1 src]# cd /usr/local/src/nginx-1.18.0/
[root@node1 nginx-1.18.0]# ./configure --prefix=/apps/nginx --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module --with-http_ssl_module
[root@node1 nginx-1.18.0]# make && make install
[root@node1 nginx-1.18.0]# /apps/nginx/sbin/nginx