Nginx如何修改版本信息或者隐藏版本号 – 21运维
通知: .-运维QQ交流群:534829726 欢迎加入。

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

nginx 21运维 466浏览 0评论

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

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

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

server_tokens off;

重启nginx,查看nginx信息:
1

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

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

原因是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版本信息则彻底修改。

 

转载请注明:21运维 » Nginx如何修改版本信息或者隐藏版本号

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 讲解得很仔细哈,这个可以有,学习了
    重庆SEO2017-10-17 16:42 回复