天天看點

Nginx 服務優化(隐藏版本号+配置頁面緩存)

文章目錄

    • 一、Nginx 隐藏版本号:
    • 二、配置網頁緩存時間:

一、Nginx 隐藏版本号:

和Apache一樣,在生産環境中,需要隐藏 nginx 的版本号,以避免洩露 nginx 的版本,遭受不必要的攻擊。

1、可以使用 fiddler 工具抓包檢視 nginx版本;

2、也可以使用指令:curl -I 檢視

Nginx 服務優化(隐藏版本号+配置頁面緩存)

隐藏 nginx 版本号有兩種方式,第一種:直接修改 Nginx 的主配置檔案,讓其不顯示版本号即可;第二種:修改 Nginx 源碼檔案。

(1)修改 Nginx 主配置檔案:

1、将 nginx 的配置檔案中的 server_tokens 選項值設定為 off,如沒有該選項,加上即可(注意是在http頭部資訊中)

server_tokens off
           
Nginx 服務優化(隐藏版本号+配置頁面緩存)

2、修改好配置檔案之後,重新開機一下 nginx 服務即可;

再用剛剛的指令檢視版本号:

Nginx 服務優化(隐藏版本号+配置頁面緩存)

通過比較可以發現,修改配置檔案之後,版本号就已經隐藏了。

(2)修改nginx 源碼檔案,源碼檔案中包含了版本資訊,可以随意設定(自定義),然後再重新編譯安裝,就隐藏了真實的版本資訊。

1、檔案位置:nginx-1.12.2/src/core/nginx.h

修改版本号和伺服器類型:

Nginx 服務優化(隐藏版本号+配置頁面緩存)

2、重新編譯

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
           

3、重新安裝

4、重新開機ngin服務

[[email protected] ~]# systemctl stop nginx.service 
[[email protected] ~]# systemctl start nginx.service
           

3、再用剛剛的指令檢視版本号:

Nginx 服務優化(隐藏版本号+配置頁面緩存)

二、配置網頁緩存時間:

當nginx 将網頁資料傳回給用戶端後,可設定緩存時間,以友善日後進行相同内容請求時直接傳回,避免重複請求,加快通路速度,一般隻針對靜态資源進行設定,對動态網頁不用設定緩存時間。

(1)第一步:以圖檔作為緩存對象,先複制一張圖檔到 Nginx 的工作目錄,并用網站通路是否加載成功,用fiddler 工具進行抓包,檢視相應封包,是否有圖檔緩存資訊。

1、先複制一張圖檔到 nginx的工作目錄:

Nginx 服務優化(隐藏版本号+配置頁面緩存)
Nginx 服務優化(隐藏版本号+配置頁面緩存)

2、用 fiddler工具進行抓包測試是否有緩存資訊:

下面是未修改前的響應封包:

Nginx 服務優化(隐藏版本号+配置頁面緩存)

(2)第二步:修改 Nginx的配置檔案,在 location 段加入 expires參數,指定緩存時間。

location ~\.(gif|jepg|jpg|ico|bmp|png)$ {   //以各種格式結尾的圖檔
            root html;                       
            expires 1d;	                     //指定緩存時間,1天
}
           
Nginx 服務優化(隐藏版本号+配置頁面緩存)

(3)第三步:重新開機 nginx服務,通路網頁抓包。

[[email protected] conf]# systemctl stop nginx.service 
[[email protected] conf]# systemctl start nginx.service 
           

一下是緩存修改後的響應封包:其中Cache-Control:max-age=86400,表示緩存時間是86400秒,即一天的時間。

Nginx 服務優化(隐藏版本号+配置頁面緩存)

(4)通過綜上對比,設定緩存時間為一天後,就表示在一天内浏覽器通路這個網頁,都會使用緩存中的資料,而不需要向 nginx伺服器重新送出請求了,減少了伺服器的使用頻度。

繼續閱讀