修改或隱藏Nginx的版本號

nginx_web發表於2012-07-24

隱藏版本號

 

    隱藏nginx的版本號很簡單,nginxHttpCoreModule提供了一條叫做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-736457/,如需轉載,請註明出處,否則將追究法律責任。

相關文章