Nginx修改版本資訊或隱藏版本號
阿新 • • 發佈:2021-06-15
一,隱藏版本號。
首先說明,這個是某一方面隱藏,不是徹底隱藏。未隱藏之前檢視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版本資訊則徹底修改。