Nginx 笔记与总结(14)expires 缓存设置
設置緩存,可以提高網站性能。
當網站的部分內容,比如新聞站的圖片,一旦發布就不太可能發生更改,此時需要用戶在訪問一次頁面之后,把該頁面的圖片緩存在用戶的瀏覽器端一段時間,就可以用到 nginx 的 expires 設置。
?
expires 的語法參見:http://nginx.org/en/docs/http/ngx_http_core_module.html
location = /images/default.gif {expires 30s; # 30m:30 分鐘,2h:2 小時,30d:30 天 }expires 的上下文包括 location、if in location
?
【例】
訪問?http://192.168.254.100/
圖片 nginx.png 的響應狀態是 200 ok
此時圖片的 http 頭信息:
?
再次刷新該頁面
圖片 nginx.png 的響應狀態是 304 Not Modified,即來自瀏覽器緩存
此時圖片的的 http 頭信息:
?
雖然圖片該次是從瀏覽器緩存中讀取,但是瀏覽器仍然像服務器發出了一次 http 請求
如果要實現在一定時間內,瀏覽器不需要向服務器發送 http 請求,而直接從本地緩存中讀取圖片,可以在 nginx.conf 中進行配置:
[root@localhost nginx]# vim conf/nginx.confnginx.conf(添加 location 段 或者 修改 location ~ image?):
location ~ image {root /var/www/;expires 1d;index index.html;}
平滑重啟 nginx
?
強刷(ctrl+f5)該頁面,此時圖片的 http 響應信息:
86400 是 1 天的秒數。
?
再次刷新該頁面(按瀏覽器的刷新按鈕):
?
?
在地址欄回車刷新頁面:
?沒有產生實際請求。
?
在 chrome 瀏覽器下,通過地址欄回車刷新頁面時的 http 響應信息:
?
?from cache 表名沒有產生實際請求。
?
修改 location ~ image 或者 添加 location,使緩存圖片不僅限于 image 文件夾,而是網站中所有的 png|jpg|jpeg|gif (不區分大小寫)圖片都進行緩存設置:
location ~* \.(jpg|jpeg|png|gif){expires 1d;}平滑重啟 nginx。
?
驗證:訪問 ecshop 目錄下的某個圖片
?沒有產生實際請求。
?
點擊瀏覽器刷新按鈕,查看該圖片的 http 響應頭信息:
說明此次 location 配置成功。
?
總結
以上是生活随笔為你收集整理的Nginx 笔记与总结(14)expires 缓存设置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iframe 自适应高度 跨域
- 下一篇: 虚拟机安装MAC-OS系统开发非常卡。使