Nginx的版本號主要在兩個地方會有:
第一個是HTTP header,有個Server:nginx/1.x.x類似會暴露Web服務器所用軟件名稱以及版本號,這個也是大多數Web服務器最容易暴露版本號的地方,如下:
[root@bkjz ~]# curl -I www.nginx.org HTTP/1.1 200 OK
Server: nginx/0.8.44 Date: Tue, 13 Jul 2010 14:05:11 GMT
Content-Type: text/html
Content-Length: 8284 Last-Modified: Tue, 13 Jul 2010 12:00:13 GMT
Connection: keep-alive
Keep-Alive: timeout=15 Accept-Ranges: bytes
第二個地方是Nginx出錯頁面,比如404頁面沒有找到等,這是如果用戶沒有指定頁面的話,那麼Nginx自己的頁面會有版本戳記。
不過幸運的是對於這兩個地方的版本號隱藏,Nginx都提供了簡單的辦法一步到位,參考server_tokens。通過在配置文件的http節配置server_tokens off來達到我們目的。
1、打開Nginx主配置文件:nginx.conf,取消註釋或添加配置語句。
http { # ...省略一些配置
server_tokens off; #默認是註釋掉的
# ...省略一些配置}
2、編輯php-fpm配置文件,如fastcgi.conf或fcgi.conf(這個配置文件名也可以自定義的,根據具體文件名修改):
找到:
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
改爲:
fastcgi_param SERVER_SOFTWARE nginx;
3、重新加載nginx配置
/etc/init.d/nginx reload
或者
servic nginx reload
reload可以不斷業務重載配置,也可以考慮直接重啓。
這樣就完全對外隱藏了nginx版本號了,就是出現404、501等頁面也不會顯示nginx版本
轉自:http://www.ttlsa.com/nginx/hidden-nginx-version/