首頁  >  文章  >  運維  >  Nginx快取清理配置,最佳化網站靜態資源更新

Nginx快取清理配置,最佳化網站靜態資源更新

PHPz
PHPz原創
2023-07-05 11:57:062052瀏覽

Nginx快取清理配置,最佳化網站靜態資源更新

引言:
在網站開發過程中,常會有靜態資源的更新,如CSS、JavaScript和圖片等。然而,由於瀏覽器的快取機制,訪客可能無法立即取得到最新版本的靜態資源。為了解決這個問題,我們可以使用Nginx進行快取清理配置,以最佳化網站靜態資源的更新。

一、Nginx快取設定
首先,我們需要在Nginx的設定檔nginx.conf中加入以下指令來設定快取相關的設定:

http {
    ...
    proxy_cache_path /path/to/cache levels=1:2 keys_zone=cache_zone:10m max_size=10g inactive=60m;
    ...

    server {
        ...
        location ~* .(css|js|png|jpg|jpeg|gif|ico)$ {
            expires 30d;
            add_header Pragma public;
            add_header Cache-Control "public";
            proxy_cache cache_zone;
            proxy_cache_key $scheme$proxy_host$uri$is_args$args;
            proxy_cache_valid 200 301 302 404 1d;
        }
        ...
    }
    ...
}
  1. proxy_cache_path:設定快取目錄的路徑。 levels=1:2表示在快取目錄下使用兩層子目錄來儲存快取文件,這可以提高文件的查找速度。 keys_zone為快取區域的名稱,10m表示分配10MB的記憶體用於快取索引。 max_size表示快取檔案的最大大小,inactive表示在指定時間沒有被存取時,快取檔案會被刪除。
  2. location:用於匹配需要被快取的靜態資源檔案。在此例中,使用正規表示式來匹配CSS、JavaScript、圖片等文件,並設定快取的過期時間為30天。
  3. add_header:新增HTTP回應頭訊息,設定Pragma為public和Cache-Control為public,以確保快取可以被公共快取伺服器和瀏覽器快取。

二、Nginx快取清理設定
當我們更新了網站的靜態資源檔案後,需要將快取中的舊版本檔案清除,以使訪客可以取得到最新的靜態資源。為了實現這一點,我們可以在Nginx的設定檔中加入以下程式碼:

http {
    ...
    proxy_cache_path /path/to/cache levels=1:2 keys_zone=cache_zone:10m max_size=10g inactive=60m;
    ...

    server {
        ...
        location /purge-cache {
            internal;
            proxy_cache_purge cache_zone "$scheme$proxy_host$uri$is_args$args";
        }
        ...
    }
    ...
}
  1. location:定義一個/purge-cache的URL,用於觸發快取清理操作。 internal表示這個URL只對內部存取有效。
  2. proxy_cache_purge:清除指定的URL對應的快取檔案。

三、程式碼範例
假設我們網站中的CSS檔案位於http://example.com/static/css/style.css,我們可以使用以下程式碼來清理快取中的該文件:

curl -X PURGE http://example.com/purge-cache/static/css/style.css

這個請求將會使nginx清除快取中該URL對應的快取文件,下次造訪該URL時將會重新產生快取。

結論:
透過設定Nginx的快取清理,我們可以優化網站靜態資源的更新。當我們更新了靜態資源時,只需要發送一個清理快取的請求,就可以讓訪客取得到最新的資源文件,提高網站的效能和使用者體驗。

參考資料:

  • Nginx官方文件:https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_purge
#

以上是Nginx快取清理配置,最佳化網站靜態資源更新的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn