當前位置:
首頁 > 最新 > Nginx作為靜態資源web服務-控制瀏覽器緩存、防盜鏈

Nginx作為靜態資源web服務-控制瀏覽器緩存、防盜鏈

圖書推薦

正文內容


1. 瀏覽器緩存簡介

瀏覽器緩存遵循HTTP協議定義的緩存機制(如:Expires;Cache-control等)。

當瀏覽器無緩存時,請求響應流程

當瀏覽器有緩存時,請求響應流程

瀏覽器緩存校驗過期機制瀏覽器請求流程


ngx_http_headers_module語法

本配置項可以控制HTTP響應中的「Expires」和「Cache-Control」頭信息,(起到控制頁面緩存的作用)。

「Expires」頭信息中的過期時間為當前系統時間與您設定的 time 值時間的和。如果指定了 modified 參數,則過期時間為文件的最後修改時間與您設定的 time 值時間的和。

「Cache-Control」頭信息的內容取決於指定 time 的符號。可以在time值中使用正數或負數。

當 time 為負數,「Cache-Control: no-cache」;

當 time 為正數或0,「Cache-Control: max-age=time」,單位是秒。

參數用於指定「Expires」的值為 1 January, 1970, 00:00:01 GMT。

參數用於指定「Expires」的值為 「Thu, 31 Dec 2037 23:55:55 GMT」,「Cache-Control」 的值為10 年。

參數令對「Expires」 和 「Cache-Control」響應頭信息的添加或修改失效。


1. vim /etc/nginx/conf.d/static.conf

2. nginx -s reload 重新載入nginx配置文件3. 創建 /vagrant/doc/hello.txt 文件4. 通過curl訪問 192.168.33.88/hello.txt,查看http響應頭信息

重點查看 和 兩個欄位,可見,hello.txt 的緩存時間為1天。


目的:防止資源被盜用

思路:區別哪些請求是非正常的用戶請求


語法

:請求頭中沒有 Referer 欄位

:請求頭中雖然存在「Referer」欄位,但是它的值已經被防火牆或代理伺服器刪除;這些值是不以「http://」或「https://」開頭的字元串;

:「Referer」請求頭欄位包含該伺服器名稱

任意字元串:定義一個伺服器名稱和一個可選的URI前綴。伺服器名開始或結尾可以有 「*」 。檢查時,「Referer」欄位中的伺服器埠會被忽略。

正則表達式:字元串必須以開頭,值得注意的是,正則表達式匹配的是在「http://」或「https://」之後的內容。

示例


1. vim conf.d/static.conf

2. nginx -s reload 重新載入nginx配置文件3. 創建文件4. 使用 curl進行訪問測試

不帶referer,可以正常訪問

referer為 ,返回403

referer以 開頭或 結尾,可以正常訪問

referer為 ,可以正常訪問

referer為 ,返回403

referer為 ,可以正常訪問

以上是文章全部內容,歡迎關注「PHP自學中心」,導航欄里已經給大家整理了基礎知識題筆試題視頻教程等,有需要的可以查看查看


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 PHP自學中心 的精彩文章:

VMware虛擬機安裝CentOS 7並搭建Lamp伺服器環境

TAG:PHP自學中心 |