文章目錄
-
- 一、Nginx 隐藏版本号:
- 二、配置網頁緩存時間:
一、Nginx 隐藏版本号:
和Apache一樣,在生産環境中,需要隐藏 nginx 的版本号,以避免洩露 nginx 的版本,遭受不必要的攻擊。
1、可以使用 fiddler 工具抓包檢視 nginx版本;
2、也可以使用指令:curl -I 檢視
隐藏 nginx 版本号有兩種方式,第一種:直接修改 Nginx 的主配置檔案,讓其不顯示版本号即可;第二種:修改 Nginx 源碼檔案。
(1)修改 Nginx 主配置檔案:
1、将 nginx 的配置檔案中的 server_tokens 選項值設定為 off,如沒有該選項,加上即可(注意是在http頭部資訊中)
server_tokens off
2、修改好配置檔案之後,重新開機一下 nginx 服務即可;
再用剛剛的指令檢視版本号:
通過比較可以發現,修改配置檔案之後,版本号就已經隐藏了。
(2)修改nginx 源碼檔案,源碼檔案中包含了版本資訊,可以随意設定(自定義),然後再重新編譯安裝,就隐藏了真實的版本資訊。
1、檔案位置:nginx-1.12.2/src/core/nginx.h
修改版本号和伺服器類型:
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 将網頁資料傳回給用戶端後,可設定緩存時間,以友善日後進行相同内容請求時直接傳回,避免重複請求,加快通路速度,一般隻針對靜态資源進行設定,對動态網頁不用設定緩存時間。
(1)第一步:以圖檔作為緩存對象,先複制一張圖檔到 Nginx 的工作目錄,并用網站通路是否加載成功,用fiddler 工具進行抓包,檢視相應封包,是否有圖檔緩存資訊。
1、先複制一張圖檔到 nginx的工作目錄:
2、用 fiddler工具進行抓包測試是否有緩存資訊:
下面是未修改前的響應封包:
(2)第二步:修改 Nginx的配置檔案,在 location 段加入 expires參數,指定緩存時間。
location ~\.(gif|jepg|jpg|ico|bmp|png)$ { //以各種格式結尾的圖檔
root html;
expires 1d; //指定緩存時間,1天
}
(3)第三步:重新開機 nginx服務,通路網頁抓包。
[[email protected] conf]# systemctl stop nginx.service
[[email protected] conf]# systemctl start nginx.service
一下是緩存修改後的響應封包:其中Cache-Control:max-age=86400,表示緩存時間是86400秒,即一天的時間。
(4)通過綜上對比,設定緩存時間為一天後,就表示在一天内浏覽器通路這個網頁,都會使用緩存中的資料,而不需要向 nginx伺服器重新送出請求了,減少了伺服器的使用頻度。