Nginx默认显示版 本 号,但这样人家能看到你的服务器nginx的真实版本号,而这个暴露出的版本号很易变成攻击者可利用的信息。所以,从安全的角度来说, 隐藏版本号会相对安全些!
1、在nginx.conf配置文件中的http模块中国添加“ server_tokens off;”
2、编辑配置文件fastcgi.conf 和 fastcgi_params 此法尝试没成功
修改内容:
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依旧可以查到
[root@SyslogVM 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
[root@SyslogVM nginx]# nginx -v
nginx version: nginx/1.16.1
修改内容:
fastcgi_param SERVER_SOFTWAREnginx/$nginx_version;
结果:没生效
修改nginx版本号需要在配置安装nginx之前进行。下载完成nginx并解压后,首先要 对源码进行修改,源码文件都在二级目录“nginx-0.8.53/src/”下,找到如下文件“src/core/nginx.h”,然后再对它进行修改。
1、修改第一个文件src/core/nginx.h
[root@mail 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、校验:输入错误地址,看是否隐藏