新聞中心
配置Nginx緩存靜態(tài)資源以提高網(wǎng)站性能

目前創(chuàng)新互聯(lián)已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、高坪網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
I. Nginx緩存概述
Nginx緩存機(jī)制簡介:
Nginx緩存是一種在內(nèi)存或磁盤上存儲經(jīng)常訪問的靜態(tài)資源,如圖片、CSS和JavaScript文件的技術(shù),當(dāng)客戶端請求這些資源時(shí),Nginx可以直接從緩存中提供它們,而不需要每次都從原始服務(wù)器獲取,從而顯著減少響應(yīng)時(shí)間并降低后端服務(wù)器的負(fù)載。
緩存對性能提升的作用:
通過緩存靜態(tài)資源,Nginx可以減少對后端服務(wù)器的請求次數(shù),這不僅降低了服務(wù)器的CPU和內(nèi)存使用,還減少了網(wǎng)絡(luò)帶寬的消耗,由于緩存的資源加載速度更快,用戶的體驗(yàn)也得到了提升,頁面加載時(shí)間縮短,跳出率降低,有助于提高網(wǎng)站的轉(zhuǎn)化率和用戶滿意度。
II. 配置Nginx緩存
安裝Nginx:
在大多數(shù)Linux發(fā)行版中,可以使用包管理器來安裝Nginx,在Ubuntu系統(tǒng)中,可以通過運(yùn)行以下命令來安裝最新版本的Nginx:
sudo apt update sudo apt install nginx
安裝完成后,可以通過運(yùn)行systemctl status nginx來檢查Nginx服務(wù)的狀態(tài)。
開啟緩存功能:
要開啟Nginx的緩存功能,需要在Nginx配置文件(通常位于/etc/nginx/nginx.conf或/etc/nginx/sitesavailable/default)中進(jìn)行設(shè)置,確保http塊中包含proxy_cache_path指令,用于定義緩存文件的存儲位置和大小。
http {
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
...
}
這里,/var/cache/nginx是緩存文件的存儲路徑,levels=1:2表示緩存目錄的層級結(jié)構(gòu),keys_zone=my_cache:10m定義了一個(gè)名為my_cache的緩存區(qū)域,初始大小為10MB,max_size=1g限制了緩存的最大大小為1GB,inactive=60m設(shè)置了緩存文件的過期時(shí)間為60分鐘,use_temp_path=off禁止使用臨時(shí)路徑存儲緩存文件。
接下來,在server塊中,針對需要緩存的靜態(tài)資源設(shè)置location塊,并使用proxy_cache指令來啟用緩存。
server {
listen 80;
server_name example.com;
location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
proxy_cache my_cache;
proxy_pass http://backend;
...
}
...
}
這里,正則表達(dá)式~* .(jpg|jpeg|png|gif|ico|css|js)$匹配所有圖片和樣式表文件,proxy_cache my_cache指定使用之前定義的緩存區(qū)域my_cache,proxy_pass http://backend將請求代理到后端服務(wù)器。
完成以上配置后,保存文件并退出編輯器,重新加載Nginx配置以應(yīng)用更改:
sudo nginx t # 檢查配置文件語法是否正確 sudo systemctl reload nginx # 重新加載配置
現(xiàn)在,Nginx已經(jīng)配置好了緩存靜態(tài)資源的功能,為了驗(yàn)證緩存是否生效,可以使用瀏覽器訪問網(wǎng)站并檢查開發(fā)者工具中的網(wǎng)絡(luò)請求,如果看到從Nginx服務(wù)器直接返回的靜態(tài)資源響應(yīng),而不是來自后端服務(wù)器,那么緩存就成功了。
III. 緩存策略優(yōu)化
設(shè)置合理的緩存時(shí)間:
合理的緩存時(shí)間對于平衡最新內(nèi)容與性能之間至關(guān)重要,如果緩存時(shí)間設(shè)置得太短,會導(dǎo)致緩存頻繁失效,增加后端服務(wù)器的負(fù)擔(dān);設(shè)置得太長,則用戶可能無法及時(shí)看到更新的內(nèi)容,一個(gè)常見的做法是為不同類型的資源設(shè)置不同的緩存時(shí)間,可以設(shè)置圖片和樣式表文件的緩存時(shí)間為一周,而腳本文件則為一天:
location ~* .(jpg|jpeg|png|gif|ico)$ {
expires 7d;
...
}
location ~* .(css)$ {
expires 7d;
...
}
location ~* .(js)$ {
expires 1d;
...
}
在這里,expires指令告訴瀏覽器資源的有效期,從而減少不必要的再次請求。
使用HTTP頭控制緩存:
除了設(shè)置expires之外,還可以使用CacheControl和ETag頭來進(jìn)一步控制緩存行為。CacheControl頭可以用來指定最大緩存時(shí)間,而ETag頭提供了資源的唯一標(biāo)識符,使得只有在資源發(fā)生變化時(shí)才會重新請求。
location ~* .(html)$ {
add_header CacheControl "public, maxage=60";
...
}
這里,add_header指令添加了一個(gè)CacheControl頭,指示瀏覽器資源的緩存時(shí)間為60秒,結(jié)合ETag頭的使用,可以確保只有當(dāng)資源發(fā)生變更時(shí),瀏覽器才會重新請求該資源。
通過這些優(yōu)化策略,可以確保用戶既能獲得快速的網(wǎng)站響應(yīng),又能在必要時(shí)獲取到最新的內(nèi)容。
當(dāng)前標(biāo)題:nginx靜態(tài)頁面緩存
分享地址:http://m.fisionsoft.com.cn/article/dppchjh.html


咨詢
建站咨詢
