如何在Ubuntu 16.04上移除Nginx的Server 回應標頭

前言

有時候我們在使用Nginx的時候,回應預設標頭會有Server標頭,裡面會有Nginx版本與使用在哪個的Linux發行版本。

這會讓有心人士從這個標頭查找相關的資訊,並進而入侵。我們為了要避免這個問題,因此我們需要在機器上安裝額外的套件來設定。本文章中,我們以Ubuntu 16.04為例子,將Nginx設定成不會有Server標頭洩漏的發生。

預先安裝的環境

首先,我們先假設我們已經先有下面的Linux發行版本與安裝的套件。

  1. Ubuntu 16.04
  2. Nginx

安裝nginx-extras

我們首先需要安裝nginx-extras來幫助我們隱藏Server的回應標頭(header)


sudo apt-get update
sudo apt-get install nginx-extras

設定回應的Server標頭為隱藏

安裝好nginx-extras之後,我們打開/etc/nginx/nginx.conf設定檔,在http區塊裡面我們可以設定如下面的參數:


more_clear_headers Server;
server_tokens off;

接著設定完成之後,就會像如下截圖一樣。

接著在使用下面的指令檢查Nginx的語法與重新啟動Nginx服務,這樣就會成功把Server回應標頭給移除掉了!


sudo nginx -t

sudo service nginx restart

參考資料

  1. how-do-you-change-the-server-header-returned-by-nginx