nginx的快取設定以及實際應用
#在實際生產中,一般可支援3萬~4萬併發連線數!
nginx配置快取的優點:可以在一定程度上,減少伺服器的處理請求壓力。比如對一些,css或js做一些快取,那麼在每次重新整理瀏覽器的時候,就不會重新請求了,而是從快取裡面讀取。這樣就可以減輕伺服器的壓力。
nginx可配置的快取又有2種:
1)客戶端的快取(一般指瀏覽器的快取)。
2)服務端的快取(使用proxy-cache實現的)。
在nginx.conf加入如下規則:
}複製**
如上配置解析含義如下:
~* 的含義是:通配任意字元(且大小寫不敏感),\轉義字元,因此 ~* .(html)$的含義是:匹配所有以.html結尾的請求
access_log off; 的含義是 關閉日誌功能。
add_header cache-control max-age=180000; 的含義給上面匹配字尾的檔案設定強制快取,且快取的時間是180000秒,第一次訪問的時候,從伺服器請求,當除了第一次以外,再次重新整理瀏覽器,會從瀏覽器快取讀取,那麼強制快取一般是從記憶體裡面先讀取,如果記憶體沒有,再從硬碟讀取。
注意:如上只是不對反向**的頁面進行快取設定的,但是如果是反向**後的頁面,如上設定是不生效的。比如說我node起了乙個服務,然後通過訪問nginx反向**的方式**到我node服務來,上面的配置是不生效的。因此我們需要如下處理配置。
解決nginx反向**快取不起作用的問題
server
}複製**
如果我們要新增快取功能的話,需要建立乙個用於存放快取檔案的資料夾。比如我們這裡使用 /data/nuget-cache。
在/usr/local/etc/nginx目錄下新建。比如使用命令:mkdir /data/nuget-cache. 建立完成後,我們來檢視下:
2)然後我們需要在nginx.conf的http設定部分新增 proxy_cache_path的設定,如下:
proxy_cache_path 各個配置值的含**析如下:
proxy_cache_path 指快取的目錄,目錄為:/data/nuget-cache。
levels=1:2 表示採用2級目錄結構;
keys_zone 指的是快取空間名稱,叫nuget-cache。快取記憶體的空間為20m。
max_size 指的是快取檔案可以占用的最大空間。為50g.
inactive=168h; 預設過期時間為168個小時。為7天,也可以寫成:inactive=7d; 這樣的。
3)我們還需要在server設定部分新增 proxy_cache 與 proxy_cache_valid的設定:如下**:
proxy_cache 設定的是 proxy_cache_path中的keys_zone的值。
proxy_cache_valid:設定的是快取過期時間,比如設定168個小時過期。
在這裡插入描述
如上配置完成後,我們儲存nginx.conf配置後,重新啟動下nginx後,發現還是不能快取檔案了。因此我們還需要進行如下配置:
需要在server中再加上如下**:
proxy_ignore_headers set-cookie cache-control;
proxy_hide_header cache-control;
proxy_hide_header set-cookie;
proxy_ignore_headers的含義是:忽略cache-control的請求頭控制,依然進行快取,比如對請求頭設定cookie後,預設是不快取的,需要我們增加忽略配置。
具體配置:
http 區域下新增快取區配置
expires 是給乙個資源設定乙個過期時間,通過 expires 引數設定,可以使瀏覽器快取過期時間之前的內容,減少與伺服器之間的請求和流量。
#也就是說無需去服務端驗證,直接通過瀏覽器自身確認是否過期即可,所以不會產生額外的流量。此種方法非常適合不經常變動的資源,一般使用在靜態資源上。
nginx快取設定
目的 快取nginx伺服器的靜態檔案。如css,js,htm,html,jpg,gif,png,flv,swf,這些檔案都不是經常更新。便於快取以減輕伺服器的壓力。實現 nginx proxy cache可以將使用者的請快取到本地乙個目錄,當下乙個請求時可以直接調取快取檔案,就不用去後端伺服器去取檔...
nginx快取設定
目的 快取nginx伺服器的靜態檔案。如css,js,htm,html,jpg,gif,png,flv,swf,這些檔案都不是經常更新。便於快取以減輕伺服器的壓力。配置 開啟配置檔案 usr local nginx conf nginx.conf 紅色部分是配置快取的引數。說明 1 http段設定。...
nginx快取設定
目的 快取nginx伺服器的靜態檔案。如css,js,htm,html,jpg,gif,png,flv,swf,這些檔案都不是經常更新。便於快取以減輕伺服器的壓力。實現 nginx proxy cache可以將使用者的請快取到本地乙個目錄,當下乙個請求時可以直接調取快取檔案,就不用去後端伺服器去取檔...