nginx 配置靜態(tài)緩存及靜態(tài)緩存文件沒有生成的問題及解決方案
nginx 配置靜態(tài)緩存全教程 (以及靜態(tài)緩存文件沒有生成)
一、第一步定義一個緩存目錄設(shè)置目錄結(jié)構(gòu)
在 http 模塊下定義(keys_zone = 緩存區(qū)名:后面是緩存區(qū)大小 inactive 不活躍的文件多久清理 max_size 緩存區(qū)所占磁盤的上限 use_temp_path 默認(rèn)關(guān)閉(有需要自己百度))
proxy_cache_path /path/your_cache_dir levels = 1:2 keys_zone=your_cache_name:10g inactive=1h max_size=20g use_temp_path=off;
二、開啟緩存
在 http、server、location 中開啟代理緩存
舉例在location中開啟(將圖片jscsshtml等放入緩存)
server { listen 8099; #緩存端口或者緩存域名 root /www/wwwroot/static/; index index.html; location ~*.\.(png|jpg|css|html)$ { expires 30m; #緩存過期時間在瀏覽器的緩存時間 proxy_pass http://localhost:8100; # 代理地址非緩存文件的訪問地址,***必須加這個否則生成不來緩存這個*** proxy_cache your_cache_name; #proxy_cache_path中定義的名字 proxy_cache_valid 200 10m; #把狀態(tài)值為200的緩存10分鐘 proxy_cache_valid any 5m; #把狀態(tài)值除來200的緩存5分鐘 proxy_cache_key "$host$request_uri"; #默認(rèn)key proxy_cache_revalidate on; #是否開啟驗證緩存的有效性關(guān)閉則緩存數(shù)據(jù)有變化依然請求緩存 開啟則會請求新的 proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; #當(dāng)后臺出現(xiàn)錯誤時跳過 add_header X-Proxy-Cache $upstream_cache_status; #在頭文件新增一個X-Proxy-Cache(自定義)驗證緩存是否命中 Hit命中 miss 沒有命中 } } server { listen 8100; #正式的地址 root /www/wwwroot/static/; index index.html; # 其他配置... }
注意事項
nginx 緩存叫代理緩存 應(yīng)該是有兩臺以上的服務(wù)器。如果只有一臺加不同的域名或者端口做區(qū)分。把后臺服務(wù)器和緩存服務(wù)分開
緩存沒有生成
1、文件夾是否有權(quán)限
2、是否設(shè)置了proxy_pass(只有走代理才會生成緩存)
Nginx緩存、靜態(tài)文件緩存配置
Nginx靜態(tài)Server基本配置
server { listen 80; #監(jiān)聽的端口 server_name www.test.com; #監(jiān)聽的域名 charset utf-8;#編碼 root /usr/local/static/www.test.com; #主目錄 index index.html index.htm;#歡迎頁面 }
靜態(tài)文件緩存配置
http { # 這個將為打開文件指定緩存,默認(rèn)是沒有啟用的,max 指定緩存數(shù)量, # 建議和打開文件數(shù)一致,inactive 是指經(jīng)過多長時間文件沒被請求后刪除緩 存。 open_file_cache max=204800 inactive=20s; # open_file_cache 指令中的inactive 參數(shù)時間內(nèi)文件的最少使用次數(shù), # 如果超過這個數(shù)字,文件描述符一直是在緩存中打開的,如上例,如果有一個 # 文件在inactive 時間內(nèi)一次沒被使用,它將被移除。 open_file_cache_min_uses 1; # 這個是指多長時間檢查一次緩存的有效信息 open_file_cache_valid 30s; # 默認(rèn)情況下,Nginx的gzip壓縮是關(guān)閉的, gzip壓縮功能就是可以讓你節(jié)省不 # 少帶寬,但是會增加服務(wù)器CPU的開銷哦,Nginx默認(rèn)只對text/html進行壓 縮 , # 如果要對html之外的內(nèi)容進行壓縮傳輸,我們需要手動來設(shè)置。 gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css appl ication/xml; server { listen 80; server_name www.test.com; charset utf-8; root /data/www.test.com; index index.html index.htm; } }
基礎(chǔ)緩存配置
proxy_cache_path/path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; server { ... location / { proxy_cache my_cache; proxy_pass http://my_upstream; } }
配置參數(shù)說明
proxy_cache_path 命令中的參數(shù)及對應(yīng)配置說明如下: 1. 用于緩存的本地磁盤目錄是 /path/to/cache/ 2. levels 在 /path/to/cache/ 設(shè)置了一個兩級層次結(jié)構(gòu)的目錄。將大量的文件放置 在單個目錄中會導(dǎo)致文件訪問緩慢,所以針對大多數(shù)部署,我們推薦使用兩級 目錄層次結(jié)構(gòu)。如果 levels 參數(shù)沒有配置,則 Nginx 會將所有的文件放到同一 個目錄中。 3. keys_zone 設(shè)置一個共享內(nèi)存區(qū),該內(nèi)存區(qū)用于存儲緩存鍵和元數(shù)據(jù),有些類 似計時器的用途。將鍵的拷貝放入內(nèi)存可以使 Nginx 在不檢索磁盤的情況下快 速決定一個請求是 HIT 還是 MISS ,這樣大大提高了檢索速度。一個 1MB 的內(nèi)存空間可以存儲大約 8000個key,那么上面配置的 10MB 內(nèi)存空間可以存 儲差不多 80000 個 key。 4. max_size 設(shè)置了緩存的上限(在上面的例子中是 10G)。這是一個可選項; 如果不指定具體值,那就是允許緩存不斷增長,占用所有可用的磁盤空間。當(dāng) 緩存達(dá)到這個上線,處理器便調(diào)用 cache manager 來移除最近最少被使用的 文件,這樣把緩存的空間降低至這個限制之下。 5. inactive 指定了項目在不被訪問的情況下能夠在內(nèi)存中保持的時間。在上面的 例子中,如果一個文件在 60 分鐘之內(nèi)沒有被請求,則緩存管理將會自動將其 在內(nèi)存中刪除,不管該文件是否過期。該參數(shù)默認(rèn)值為 10 分鐘(10m)。注 意,非活動內(nèi)容有別于過期內(nèi)容。 Nginx 不會自動刪除由緩存控制頭部指定的 過期內(nèi)容(本例中 Cache-Control:max-age=120)。過期內(nèi)容只有在 inactive 158靜態(tài)文件服務(wù) 指定時間內(nèi)沒有被訪問的情況下才會被刪除。如果過期內(nèi)容被訪問了,那么 Nginx 就會將其從原服務(wù)器上刷新,并更新對應(yīng)的inactive計時器。 6. Nginx 最初會將注定寫入緩存的文件先放入一個臨時存儲區(qū)域, use_temp_path=off命令指示 Nginx 將在緩存這些文件時將它們寫入同一個目 錄下。我們強烈建議你將參數(shù)設(shè)置為off來避免在文件系統(tǒng)中不必要的數(shù)據(jù)拷 貝。use_temp_path在 Nginx 1.7版本和 Nginx Plus R6中有所介紹。 最終,proxy_cache 命令啟動緩存那些URL與location部分匹配的內(nèi)容(本例中, 為 / )。你同樣可以將proxy_cache命令添加到server部分,這將會將緩存應(yīng)用到 所有的那些location中未指定自己的proxy_cache命令的服務(wù)中。
到此這篇關(guān)于nginx 配置靜態(tài)緩存及靜態(tài)緩存文件沒有生成的問題及解決方案的文章就介紹到這了,更多相關(guān)nginx 配置靜態(tài)緩存內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx中add_header和proxy_set_header的區(qū)別及說明
這篇文章主要介紹了Nginx中add_header和proxy_set_header的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06詳解Nginx服務(wù)器中的nginx.conf配置文件
這篇文章主要介紹了詳解Nginx服務(wù)器中的nginx.conf配置文件,包括對HTTP服務(wù)的基本配置方法,需要的朋友可以參考下2015-08-08Nginx實現(xiàn)根據(jù)域名http、https分發(fā)配置示例
這篇文章主要介紹了Nginx實現(xiàn)根據(jù)域名http、https分發(fā)配置示例,本文同時介紹了openssl證書生成方法,需要的朋友可以參考下2014-10-10