簡體   English   中英

如何在Nginx中為HTML文件使用HTTP緩存?

[英]How to use HTTP caching in nginx for html files?

我當前用於HTTP內容緩存的Nginx配置是這樣的:

location ~* \.html$ {
    expires -1;
}

location ~* \.(css|js|gif|jpe?g|png)$ {
    expires 168h;
    add_header Pragma public;
    add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}

如您所見,由於HTML文件更新非常頻繁,因此我已禁用它們的緩存。 現在,我想通過使用腳本重命名html文件的父目錄來啟用HTML緩存來更新配置。 從:

視圖/ *。HTMLS

視圖/ randomString / *。HTMLS

因此,基本上發生的事情是,我的所有html文件都將被移動到具有隨機名稱的目錄,該目錄將在每次部署Web應用程序時生成。 這是正確的方法嗎? 還是已經有更好的方法來實現這一目標?

掌握HTTP緩存的工作原理。 閱讀RFC的這一部分是一個好主意。

您可以嘗試使用Entity Tag Cache Validators(或ETags ),而不用每次發布時都更改所有url並破壞人們可能制作的所有書簽。 您可以讓Nginx為html文件創建etag 要使nginx重新生成它們,您要做的就是觸摸所有更改的文件來更改時間戳。

PS,如果您運行的是非常繁忙的事情,並且希望避免使用ETag進行檢查的請求。 您可以像設置其他文件一樣設置較長的過期日期,並通過將?randomstring附加到url來更改url,如通過params進行的緩存清除中所述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM