处于某种工作目的或者是个人站点装逼,有可能会用到nginx版本信息的隐藏或者是直接修改版本号,改成其他web engine信息。
一,隐藏版本号。
首先说明,这个是某一方面隐藏,不是彻底隐藏。未隐藏之前查看nginx信息:
隐藏方法:
修改nginx.conf配置文件,在http { } 标签里边加入字段:
- server_tokens off;
重启nginx,查看nginx信息:
通过curl已经无法查看到nginx具体版本信息。
说明:这个指标不治本,比如php探针,还是可以看到nginx具体版本信息:
原因是php的配置文件fastcgi.conf中读取的变量是:
- fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
鉴于此,我们如果需要php也要显示这些信息,那么需要将这里注释或者从根源上修改nginx版本信息(修改源码,重新编译或者是安装直接就修改)。个人不建议这么搞,毕竟还有nginx错误页面或者其他地方都有可能直接暴露出来。所以,要么简单隐藏,要么彻底改掉nginx信息(下边第二种方法)。
二,根源上修改nginx版本号。
这个比较彻底,一般是安装之前就修改源码,如安装过的,就要修改源码重新编译。一般修改三个地方:
1,修改src/core/nginx.h(Nginx内部名称的)
- #define NGINX_VERSION “1.12.0”
- #define NGINX_VER “nginx/” NGINX_VERSION
2,修改src/http/ngx_http_header_filter_module.c(HTTP ResponseHeader)
- static u_char ngx_http_server_string[] = “Server: nginx” CRLF
3,修改src/http/ngx_http_special_response.c(修改错误页的底部Footer)
- static u_char ngx_http_error_tail[] = 下的nginx信息
修改完这些以后编译安装,或者重新编译。nginx版本信息则彻底修改。