Http中的Nginx版本資訊
檢視http請求的response裡面的header我們會發現有server這個參數,它表示服務端使用的是什麼web伺服器。
例如
新浪網:
Server:nginx
開源中國:
Server:Tengine
segmentfault甚至都沒有傳回server!
很多網站不止傳回了nginx而且還帶了版本号,而像版本号這種東西完全沒必要暴露給使用者,我們可以通過設定server_tokens off隐藏掉版本号:
PHP中的Nginx版本資訊
即使把server_tokens設為了off,也并不代表nginx的版本号是完全不可見的~
通過上圖我們可以看到雖然http傳回的header裡面已經沒有了版本号,但是php裡面還是可以擷取到nginx的版本号的,如果要對PHP也隐藏掉版本号就需要修改fastcgi.conf這個檔案了:
去掉後面的 /$nginx_version 或者 直接注釋掉這一行!
fastcgi_paramSERVER_SOFTWARE nginx/$nginx_version;
修改或者隐藏Nginx資訊
如果我希望nginx也不顯示呢?或者修改nginx為Tengine呢?
這個時候就要修改nginx源碼檔案src/core/nginx.h,例如我把nginx修改問tengine:
也可以把NGINX_VER 指派為空,這樣Http 傳回的header裡面的server也為空了!
需要注意的是,如果server_tokens設定為off,即使源碼NGINX_VER 指派為空或者改成其他值,傳回的server還是nginx,隻是不顯示版本号!