1. 程式人生 > 其它 >Nginx修改版本資訊或隱藏版本號

Nginx修改版本資訊或隱藏版本號

一,隱藏版本號。
首先說明,這個是某一方面隱藏,不是徹底隱藏。未隱藏之前檢視nginx資訊:

隱藏方法:

修改nginx.conf配置檔案,在http { } 標籤裡邊加入欄位:

server_tokens off;

重啟nginx,檢視nginx資訊:

通過curl已經無法檢視到nginx具體版本資訊。

說明:這個指標不治本,比如php探針,還是可以看到nginx具體版本資訊:

原因是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版本資訊則徹底修改。