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模組對這...