让Nginx隐藏版本显示信息

Nginx 会在 http 头,或者出现错误页的时候会有醒目的版本号提示。

为了安全,可以关闭这些信息。

方法很简单,只需在 nginx.conf 的 http {  里头加入 server_tokens 的参数

例如:

http {
include      mime.types;
default_type  application/octet-stream;
server_tokens off;    #关闭版本显示
client_header_timeout      3m;
client_body_timeout        3m;
send_timeout                3m;

使用 curl 工具测试结果如下:

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Fri, 11 Dec 2009 01:47:53 GMT
Content-Type: text/html
Content-Length: 178
Connection: keep-alive
Keep-Alive: timeout=20
Location: http://www.linuxidc.com

如果想把 Server 所显示的名称也修改,如下:

把 Nginx 的 head 修改成你自己的

我们使用 curl -I  等软件获取WEB 服务器http 头的时候会返回以下信息:

HTTP/1.1 200 OK
Server: nginx/0.6.35
Date: Tue, 14 Jul 2009 08:33:01 GMT
Content-Type: text/html
Content-Length: 86
Last-Modified: Tue, 16 Jun 2009 06:55:32 GMT
Connection: keep-alive
Expires: Sat, 18 Jul 2009 08:33:01 GMT
Cache-Control: max-age=345600
Accept-Ranges: bytes

 

其中 Server: nginx/0.6.35 这个 是 httpd 服务器的版本已经信息。

Nginx 的话可以通过修改源代码 src/core/nginx.h
/*
* Copyright (C) Igor Sysoev
*/
#ifndef _NGINX_H_INCLUDED_
#define _NGINX_H_INCLUDED_
#define NGINX_VERSION      “0.6.35”
#define NGINX_VER          “nginx/” NGINX_VERSION

#define NGINX_VAR          “NGINX”
#define NGX_OLDPID_EXT    “.oldbin”
#endif /* _NGINX_H_INCLUDED_ */

 

############# 我把我的改成 #############

/*
* Copyright (C) Igor Sysoev
*/
#ifndef _NGINX_H_INCLUDED_
#define _NGINX_H_INCLUDED_
#define NGINX_VERSION      “1.0”
#define NGINX_VER          “GzNow/” NGINX_VERSION

#define NGINX_VAR          “GzNow”
#define NGX_OLDPID_EXT    “.oldbin”
#endif /* _NGINX_H_INCLUDED_ */

 

##########  保存退出之后,就像平时一样编译安装。##########

这样你就有了你自己名字的 httpd 服务器了。

发表评论

返回顶部