参考:
https://www.cnblogs.com/lsdb/p/6894665.html Nginx隐藏版本号操作
https://jingyan.baidu.com/article/1709ad805b074c4635c4f041.html 如何更改nginx的源码以及版本号
https://blog.csdn.net/leiwuhen92/article/details/104405674 查看nginx版本号的几种方法
一、为什么要隐藏nginx版本号:
Nginx默认显示版 本 号,但这样人家能看到你的服务器nginx的真实版本号,而这个暴露出的版本号很易变成攻击者可利用的信息。所以,从安全的角度来说, 隐藏版本号会相对安全些!
二、隐藏nginx版本号的方法:
1、在nginx.conf配置文件中的http模块中国添加“ server_tokens off;”
2、编辑配置文件fastcgi.conf 和 fastcgi_params 此法尝试没成功
2.1、修改nginx.conf:
修改内容: http { include /etc/nginx/mime.types; default_type application/octet-stream; server_tokens off; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
结果 : curl查不到nginx的版本号,postman请求看不到nginx版本号,但使用nginx -v依旧可以查到 [[email protected] nginx]# curl -i 127.0.0.1 HTTP/1.1 200 OK Server: nginx #nginx版本号被隐藏了 Date: Thu, 20 Feb 2020 02:19:35 GMT Content-Type: text/html [[email protected] nginx]# nginx -v nginx version: nginx/1.16.1
2.2、编辑配置文件fastcgi.conf 和 fastcgi_params:
修改内容: fastcgi_param SERVER_SOFTWARE nginx/$nginx_version ; 结果 :没生效
三、修改nginx版本号
修改nginx版本号需要在配置安装nginx之前进行。下载完成nginx并解压后,首先要 对源码进行修改,源码文件都在二级目录“nginx-0.8.53/src/”下,找到如下文件“src/core/nginx.h”,然后再对它进行修改。 1、修改第一个文件src/core/nginx.h
[[email protected] nginx-0.8.53]# vi src/core/nginx.h
2、修改第二个文件/src/http/ngx_http_header_filter_module.c,将末尾的nginx修改为OWS
3、修改第三个文件/src/http/ngx_http_special_response.c
4、检查语法重新启动
nginx -t nginx -s reload
5、校验:输入错误地址,看是否隐藏