詳解Nginx緩存靜態資源

一、nginx靜態資源訪問完整配置

想要讓Nginx緩存靜態資源,首先需要進行Nginx配置。以下是Nginx靜態資源訪問完整配置的示例代碼:

location /static/ {
    root /data/www;
    expires 7d;
}

該配置將被訪問的URL路徑設置為/static/,將靜態文件存儲在/data/www目錄下,過期時間為7天。需要注意的是,該配置僅適用於靜態資源文件,如CSS、JS、圖片等。對於動態資源文件,需要進行其他配置。

二、nginx資源靜態

Nginx可以將動態資源文件轉化為靜態資源文件,加快文件的讀取速度。以下是Nginx資源靜態的示例代碼:

location / {
    proxy_pass http://backend/;
    proxy_cache_key "$scheme$request_method$host$request_uri";
    proxy_cache_valid 200 60m;
    proxy_cache_valid 404 1m;
}

首先,訪問的URL路徑被設置為根路徑。然後,將動態資源傳輸給後端伺服器,將該資源的相關信息作為緩存鍵,將緩存保留為60分鐘,404錯誤的緩存保留為1分鐘。

三、nginx代理靜態資源

當Nginx作為代理伺服器時,可以代理靜態資源,以加快訪問速度。以下是Nginx代理靜態資源的示例代碼:

location /static/ {
    proxy_pass http://backend/static/;
    proxy_cache_bypass $http_pragma;
    proxy_cache_revalidate on;
    proxy_cache_min_uses 3;
    proxy_cache_valid 200 60m;
}

該配置將/static/路徑下的靜態資源文件代理給後端伺服器,並設置了緩存刷新機制。當用戶使用Ctrl+F5刷新頁面時,Nginx會請求更新緩存。

四、nginx緩存靜態文件

為了進一步加快訪問速度,Nginx可以將靜態文件緩存到本地。以下是Nginx緩存靜態文件的示例代碼:

http {
    proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=static_cache:10m;
    server {
        location /static/ {
            proxy_pass http://backend/static/;
            proxy_cache static_cache;
            proxy_cache_valid 200 60m;
        }
    }
}

首先,在http塊中設置Nginx的緩存路徑和緩存區域。然後,在server塊中配置緩存使用的區域和緩存的有效期。

五、nginx靜態資源跨域

有時候,靜態資源文件需要跨域使用,這時就需要配置Nginx進行跨域訪問。以下是Nginx靜態資源跨域的示例代碼:

location /static/ {
    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    proxy_pass http://backend/static/;
}

在設置URL路徑後,配置Access-Control-Allow-Origin和Access-Control-Allow-Methods頭,允許跨域HTTP訪問。最後,將靜態資源代理給後端伺服器。

六、nginx靜態資源緩存CDN

為了更快地載入資源,可以使用CDN來緩存靜態資源。以下是Nginx靜態資源緩存CDN的示例代碼:

location /static/ {
    expires 7d;
    add_header Cache-Control "public";
    add_header X-Proxy-Cache $upstream_cache_status;
    proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=static_cache:10m;
    proxy_cache_key "$scheme$request_method$host$request_uri";
    proxy_cache_valid 200 60m;
    proxy_cache_bypass $http_pragma;
    proxy_cache_revalidate on;
    proxy_pass http://cdn.example.com/static/;
}

首先在location塊中設置expires,將資源緩存在客戶端。然後,在頭部設置Cache-Control和X-Proxy-Cache。接下來是配置緩存路徑、緩存鍵和緩存有效期。最後將靜態資源代理給CDN服務。

七、nginx靜態緩存配置

為了確保靜態資源文件始終被緩存,可以使用Nginx靜態緩存配置。以下是Nginx靜態緩存配置的示例代碼:

http {
    proxy_cache_path /data/nginx/cache/ keys_zone=one:10m;
    server {
        location / {
            proxy_cache one;
            proxy_cache_valid 200 1d;
        }
    }
}

在http塊中設置Nginx的緩存路徑和區域。然後在server塊中,配置Nginx使用緩存並設置緩存有效期。

八、nginx不緩存靜態資源

有時候,不希望緩存靜態資源。以下是Nginx不緩存靜態資源的示例代碼:

location /static/ {
    proxy_no_cache 1;
    proxy_cache_bypass 1;
    proxy_pass http://backend/static/;
}

在設置URL路徑後,配置不緩存靜態資源的選項,不帶緩存地將靜態資源傳給後端伺服器。

九、springboot靜態資源緩存配置

對於使用Spring Boot的應用程序,也可以配置靜態資源緩存。以下是Spring Boot靜態資源緩存配置的示例代碼:

@Configuration
public class WebMvcConfg implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**")
                .addResourceLocations("classpath:/static/")
                .setCacheControl(CacheControl.maxAge(365, TimeUnit.DAYS));
    }
}

在WebMvcConfigurer中,配置需要被緩存的靜態資源路徑和緩存有效期。

總結

Nginx緩存靜態資源可以大大提高資源載入速度,同時也能減輕伺服器的負擔。根據不同的需求,可以進行不同的配置,達到最佳的效果。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/278424.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-19 13:22
下一篇 2024-12-19 13:22

相關推薦

  • Python飛機大戰中文字資源分析

    Python飛機大戰是一款經典的飛行射擊遊戲,在遊戲過程中,玩家需要控制一架飛機不斷消滅敵人,生存到最後。該遊戲使用Python語言編寫,其中涉及到的文字資源對遊戲的整體體驗有重要…

    編程 2025-04-29
  • Centos7配置靜態ip

    本文將詳細闡述如何在Centos7系統中配置靜態ip。 一、查看網路介面 在配置靜態ip之前,我們首先需要查看系統中的網路介面,以確定我們需要配置的網卡是哪一個。 ifconfig…

    編程 2025-04-29
  • 主存屬於可搶佔資源嗎?

    主存(內存)一般被視為非可搶佔資源,即進程已經分配內存後,操作系統不會輕易將其從該進程中搶佔。然而在一些情況下,主存也可以被視為可搶佔資源。 一、 內存分配 在大多數情況下,內存是…

    編程 2025-04-29
  • Python 數據緩存及其應用

    本文將為大家詳細介紹Python數據緩存,並提供相關代碼示例。 一、Python 數據緩存基礎概念 Python 是一種解釋型語言,每次執行完一條語句後就會將內存中的結果清空,如果…

    編程 2025-04-29
  • Python緩存圖片的處理方式

    本文將從多個方面詳細闡述Python緩存圖片的處理方式,包括緩存原理、緩存框架、緩存策略、緩存更新和緩存清除等方面。 一、緩存原理 緩存是一種提高應用程序性能的技術,在網路應用中流…

    編程 2025-04-29
  • 從零入坑嵌入式及相關優質資源推薦

    對於一個全能編程開發工程師而言,嵌入式開發是不可忽視的領域。本文將從入坑嵌入式的不同方面進行詳細闡述,並推薦一些優質資源。 一、嵌入式開發簡介 嵌入式開發是指將多種軟硬體技術融合在…

    編程 2025-04-28
  • Python中通過對象不能調用類方法和靜態方法的解析

    當我們在使用Python編寫程序時,可能會遇到通過對象調用類方法和靜態方法失敗的問題,那麼這是為什麼呢?接下來,我們將從多個方面對這個問題進行詳細解析。 一、類方法和靜態方法的定義…

    編程 2025-04-27
  • Apache偽靜態配置Java

    本文將會從多個角度闡述如何在Apache中正確偽裝Java應用程序,實現URL的靜態化,提高網站的SEO優化和性能。以下是相關的配置和代碼實例。 一、RewriteEngine的配…

    編程 2025-04-27
  • Java圖片緩存的實現與優化

    Java中的圖片緩存是Web開發中常用的技術,它可以提高網頁的載入速度和用戶體驗。本文將從以下三個方面對Java圖片緩存進行詳細闡述: 一、圖片緩存的基本實現 圖片緩存技術是指將一…

    編程 2025-04-27
  • 神經網路代碼詳解

    神經網路作為一種人工智慧技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網路的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網路模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25

發表回復

登錄後才能評論