出于安全考虑,决定隐藏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