Nginx的內建快取功能

2021-08-15 19:11:56 字數 939 閱讀 6562

nginx的proxy模組 可以實現類似於squid的快取功能,http的快取與檔案系統或者塊裝置的快取還有所不同,檔案系統或者塊裝置的快取可以使用預取方法做優化,提前預取出將要被訪問的部分,但是http的快取卻無法預知檔案的訪問情形。

可以在nginx裡面實現動態頁面的靜態化工作。使用者第一次訪問index.php頁面,由於nginx的快取中沒有,會訪問相應的檔案,第二次再訪問index.php的時候,由於已經快取在了nginx的proxy_cache中,nginx當接收到請求之後就不會將請求傳送到upstream伺服器裡面了。

具體的配置方法如下:

在http域內新增如下引數

proxy_temp_path /usr/local/nginx/sy;

proxy_cache_path /usr/local/nginx/proxy_cache

levels=1:2

keys_zone=cache_zone:20m

inactive=1d

max_size=100m;

在location裡面使用proxy_cache,

配置方法如下:

location

~* \.php$

這裡面設定proxy_cache_key挺有意思的,他會根據這個key對映成乙個hash值,然後存入到本地檔案中,如果你設定的proxy_cache_key為ho

sth os

turi 那麼無論後面跟的什麼引數,都會訪問乙個檔案,不會再生成新的檔案。

而如果proxy_cache_key設定了is

args

i sa

rg

sargs,那麼傳入的引數 localhost/index.php?a=4 與localhost/index.php?a=44將對映成兩個不同hash值的檔案。

nginx實現快取功能

nginx從0.7.48版本開始,支援了類似squid的快取功能。這個快取是把url及相關組合當作key,用md5編碼雜湊後儲存在硬碟上,所以它可以支援任意url鏈結,同時也支援404 301 302這樣的非200狀態碼。雖然目前官方的nginx web快取服務只能為指定url或狀態碼設定過期時間,...

nginx快取動態頁面功能的設定

網上查了一下相關資料,主要是在需要快取的路徑加proxy cache,而後端動態頁面也需要做相應的處理,否則無法被nginx快取。或者nginx配置處加上proxy ignore headers 檢測到是 伺服器訪問的時候,給動態頁面加上和靜態頁面一致的頭部資訊,例如 etag 1febdd4429...

Nginx伺服器的壓縮功能和快取功能

在nginx伺服器配置檔案中可以通過配置gzip的使用,可以配置在http塊,server 塊或者location塊中設定,nginx伺服器可以通過ngx http gzip module模組 ngx http static module 模組功能ngx http gunzip module模組對這...