由于各种原因可能需要修改或是隐藏nginx的 版本号,为了nginx的安全性——对于一个老的nginx版本,你可能不再打算对它升级了,但是又处于安全因素考虑,因此想将其版本号隐藏;或者是吃饱了撑的没事干(开个玩笑,我知道你很忙!)打算将nginx将nginx的名字及版本号全部替换掉,这样看上去貌似你自己开发的web服务器(多牛X!哈哈,也许不是这个意思!),这部分内容就解决这两个问题。尤其对于第二个问题一定要改的有水平。
隐藏版本号
隐藏nginx的版本号很简单,nginx的HttpCoreModule提供了一条叫做server_tokens指令,我这要将这条指令设置为“server_tokens off”就可以了。
首先访问一下,看一下现有的版本:
[root@ mail ~]# curl --head http://192.168.3.139 HTTP/1.1 403 Forbidden Server: nginx/0.8.53 Date: Thu, 09 Dec 2010 00:02:04 GMT Content-Type: text/html Content-Length: 169 Connection: keep-alive |
通过访问我得到的是“Server: nginx/0.8.53”。
然后在配置文件中,http区段中插入“server_tokens off;”,重新载入配置文件:
[root@mail ~]# vi /usr/local/nginx0.8/conf/nginx.conf
worker_processes 1;
events { worker_connections 1024; }
http { include mime.types; default_type application/octet-stream; server_tokens off; expires 5s; sendfile on;
keepalive_timeout 65;
include "sites-enabled/mail*";
} [root@mail ~]#service nginx reload |
再次访问,看下图,nginx没有了版本号。
修改版本号
修改版本号的方法可要比隐藏版本号的方法复杂一点,它需要在配置安装nginx之前进行。下载完成nginx并解压后,首先要对源码进行修改,源码文件都在二级目录“nginx-0.8.53/src/”下,找到如下文件“src/core/nginx.h”,然后再对它进行修改,按照下面的代码中指出的两行(以用粗体标明):
[root@mail nginx-0.8.53]# vi src/core/nginx.h
……
#define nginx_version 8053 #define NGINX_VERSION "10.0" #define NGINX_VER "jh/" NGINX_VERSION
#define NGINX_VAR "NGINX" #define NGX_OLDPID_EXT ".oldbin"
#endif /* _NGINX_H_INCLUDED_ */ |
对这两行,你可以随便填写,如果是为了迷惑别人你可以修改为Apache 3.0或是Apache 2.0,或者是微软的IIS(估计这是在自找麻烦!)以及其它的文本服务器名称或版本号都行;如果是想牛X一下,那么就自己起一个响儿不亮的名字吧!修改完成后就可进行编译安装了。安装完成后访问一下,看一下效果:
没错,已经按照我们的意思了。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27043155/viewspace-732628/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/27043155/viewspace-732628/