一般使用Nginx的web網站,訪問網站時,可以從請求頭中看到使用了nginx以及nginx的版本號。暴露這些信息將給網站帶來一定的風險,因此安裝nginx時最好把這些信息隱藏。
隱藏nginx 版本號與WEB服務器信息
如果未安裝nginx,先去官網下載壓縮包并解壓到指定目錄,然后進入nginx安裝目錄
1、 修改src/http文件夾下的兩個文件,具體見下圖
(1)修改src/http/ngx_http_header_filter_module.c文件
vim src/http/ngx_http_header_filter_module.c
#大約在49行, 修改Server后面服務器信息為自定義服務器信息
static u_char ngx_http_server_string[] = "Server: listen/1.1" CRLF;
改成自定義名稱:
(2)修改src/http/ngx_http_special_response.c文件
vim src/http/ngx_http_special_response.c
#大約在36行,修改為自定義服務器信息
"<hr><center>listen/1.1</center>" CRLF
改成自定義名稱
2、編譯配置(如果已經安裝過nginx,這一步需要先通過nginx –V查看安裝信息,然后把相關配置加入下面配置中)
./configure --prefix=/usr/local/src/nginx
3、編譯安裝(已經安裝過的這步只執行make,不執行make install,不然會把以前的配置覆蓋,編譯后直接手動復制nginx執行文件到原安裝目錄)
make && make install
4、修改nginx配置文件,http節點下添加 server_tokens off
vim /usr/local/nginx/conf/nginx.conf
....
http {
server_tokens off;
.....
5、啟動nginx(正在運行的,需要殺掉進程再重新啟動)
/usr/local/src/nginx/sbin/nginx
6、測試
[root@node1 nginx]# sudo curl -I http://127.0.0.1
HTTP/1.1 200 OK
Server: listen/1.1
Date: Fri, 16 Oct 2020 10:49:48 GMT
Content-Type: text/html;charset=ISO-8859-1
Connection: keep-alive
Vary: Accept-Encoding
瀏覽器訪問如下,看不出網站使用了nginx。
主要:如果只想隱藏版本號,而不想自定義服務器信息,則不需要修改src/http下的ngx_http_header_filter_module.c和ngx_http_special_response.c文件