隐藏 nginx 版本号

两个地方容易暴露 nginx 版本号

1.HTTP header

curl -I www.nginx.org
#查看HTTP header

2.Nginx 出错页面(403,404,503,502 之类)

不过幸运的是对于这两个地方的版本号隐藏,Nginx 都提供了简单的办法一步到位。

通过在配置文件的 http 节配置 server_tokens off 来达到我们目的

1、打开 Nginx 主配置文件:nginx.conf,取消注释或添加配置语句。

server_tokens off;   #默认是注释掉的或直接没有

2、编辑 php-fpm 配置文件

配置文件名 fastcgi.conf 或 fcgi.conf, 这个配置文件名也可以自定义的,根据具体文件名修改:

#找到路径
find / -name fastcgi.conf
#编辑
#fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
#改成
fastcgi_param SERVER_SOFTWARE nginx;

3、重新加载 nginx 配置

# nginx -t
# nginx -s reload

隐藏 apache 版本号

conf 目录下修改 httpd.conf

ServerTokens Prod
ServerSignature Off

重启 Apache 服务

httpd -t
service httpd restart
# 或者(服务状态不正常,不能直接重启的情况下)
pkill httpd
service httpd start

隐藏 php 版本号

修改 php.ini 文件,一般在 php/lib 或者 php/etc

expose_php = Off

当 php 以 fastcgi 形式运行时,需要 重启 PHP-FPM 服务(或者进程)

测试发现,使用 apache 服务器(php 以模块形式加载),仅修改 php.ini 配置文件中的 expose_php 并不能阻止 X-Power 展示 php 版本,还需要重启 httpd 服务才行(pkill httpd 杀死所有进程,再启动服务)

参考:隐藏Nginx版本号 - 寻找普拉多 - 博客园