出于安全考虑,决定隐藏nginx的版本号。因为暴漏了版本号,也就相当于告诉了别人你的漏洞,别人可以通过这个版本所对应的漏洞利用程序来入侵你的后台。就像我知道你的操作系统内核版本为2.6.18或者我知道了你apache的版本号,我就可以利用对应的0day来进行攻击。所以说,隐藏版本号也是一种不错的安全防护措施。
未隐藏版本号之前:
复制代码代码如下:
# curl --head www.nginx.org
HTTP/1.1 200 OK
Server: nginx/0.8.31
Date: Wed, 13 Jan 2010 06:17:30 GMT
Content-Type: text/html
Content-Length: 2341
Last-Modified: Mon, 11 Jan 2010 15:45:11 GMT
Connection: keep-alive
Keep-Alive: timeout=15
Accept-Ranges: bytes
这样一下子就给人家看到你的服务器nginx版本是0.8.31
可以不显示不?
当然可以
复制代码代码如下:
#vi nginx.conf
在http 加上server_tokens off;
http {
......省略配置
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
tcp_nodelay on;
server_tokens off ;
.......省略配置
}
编辑php-fpm配置文件 如fcgi.conf 、fastcgi.conf(要看你是什么配置文件名)
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
改为
fastcgi_param SERVER_SOFTWARE nginx;
nginx重新加载配置就完成了404 501等页面都不会显示nginx版本
隐藏版本号后:
复制代码代码如下:
#curl --head 127.0.0.1
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 13 Jan 2010 06:25:01 GMT
Content-Type: text/html
Content-Length: 793
Last-Modified: Sat, 12 Dec 2009 02:28:16 GMT
Connection: keep-alive
Accept-Ranges: bytes