服务器技术

当前位置: 主页 > 新闻资讯 > 服务器技术 >

Nginx如何修改版本信息或者隐藏版本号

  • 来源:未知
  • 编辑:IDC香港
  • 时间:2019-08-06 11:55
  • 阅读:

处于某种工作目的或者是个人站点装逼,有可能会用到nginx版本信息的隐藏或者是直接修改版本号,改成其他web engine信息。

一,隐藏版本号。
首先说明,这个是某一方面隐藏,不是彻底隐藏。未隐藏之前查看nginx信息:
1

隐藏方法:
修改nginx.conf配置文件,在http { } 标签里边加入字段:


  1. server_tokens off;

重启nginx,查看nginx信息: 1

通过curl已经无法查看到nginx具体版本信息。

说明:这个指标不治本,比如php探针,还是可以看到nginx具体版本信息: 2

原因是php的配置文件fastcgi.conf中读取的变量是:


  1. fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

鉴于此,我们如果需要php也要显示这些信息,那么需要将这里注释或者从根源上修改nginx版本信息(修改源码,重新编译或者是安装直接就修改)。个人不建议这么搞,毕竟还有nginx错误页面或者其他地方都有可能直接暴露出来。所以,要么简单隐藏,要么彻底改掉nginx信息(下边第二种方法)。

二,根源上修改nginx版本号。 这个比较彻底,一般是安装之前就修改源码,如安装过的,就要修改源码重新编译。一般修改三个地方: 1,修改src/core/nginx.h(Nginx内部名称的)


  1. #define NGINX_VERSION "1.12.0"
  2. #define NGINX_VER "nginx/" NGINX_VERSION

2,修改src/http/ngx_http_header_filter_module.c(HTTP ResponseHeader)


  1. static u_char ngx_http_server_string[] = "Server: nginx" CRLF

3,修改src/http/ngx_http_special_response.c(修改错误页的底部Footer)


  1. static u_char ngx_http_error_tail[] = 下的nginx信息

修改完这些以后编译安装,或者重新编译。nginx版本信息则彻底修改。


服务热线
4000-070-040
在线咨询
常见问题