Lanyiyun: Nginx definiert eine differenzierte Cache-Konfiguration

In Nginx kann uns die differenzierte Cache-Konfiguration dabei helfen, das Cache-Verhalten flexibler zu steuern, um den Anforderungen verschiedener URLs oder Anforderungen gerecht zu werden. Um eine differenzierte Cache-Konfiguration zu erreichen, können wir den „location“-Block von Nginx und zugehörige Cache-Anweisungen verwenden. Das Folgende ist eine gängige Konfigurationsmethode für den differenziellen Cache:

Zunächst gehen wir davon aus, dass es zwei Arten von URLs gibt: Die eine ist eine statische Ressourcen-URL, die zwischengespeichert werden muss, und die andere ist eine dynamische Inhalts-URL, die bei jeder Anfrage den neuesten Inhalt vom Backend-Server abrufen muss. Wir werden jeweils unterschiedliche Cache-Konfigurationen für diese beiden URL-Typen durchführen.

  1. Statische Ressourcen-Cache-Konfiguration:
    Unter der Annahme, dass unsere statischen Ressourcen-URLs alle  /static/mit beginnen und wir diese URLs zwischenspeichern möchten, können wir Nginx wie folgt konfigurieren:
server {
    listen 80;
    server_name example.com;

    location /static/ {
        # 开启缓存
        proxy_cache my_static_cache;
        # 缓存有效期为1天
        proxy_cache_valid 200 302 1d;
        # 缓存大小限制
        proxy_cache_max_size 100m;
        # 关闭缓存的Cookie
        proxy_ignore_headers "Cache-Control" "Set-Cookie";
        # 在缓存过期时,异步更新缓存,避免缓存失效时用户等待
        proxy_cache_use_stale updating;
        # 向后端服务器获取资源
        proxy_pass http://backend_server;
    }

    # 其他配置...
}

In der obigen Konfiguration haben wir  proxy_cachedie Direktive verwendet, um das Caching zu aktivieren und  proxy_cache_validdie Cache-Gültigkeitsdauer auf 1 Tag festzulegen. Legen Sie gleichzeitig  proxy_cache_max_sizeeine Cache-Größenbeschränkung fest, um zu verhindern, dass der Cache zu viel Speicherplatz beansprucht. Wir verwenden  proxy_ignore_headersDirektiven auch, um die Auswirkungen auf den Cache zu ignorieren, da statische Ressourcen im Allgemeinen nicht von Headern wie „Cache-Control“ und „Set-Cookie“ betroffen sind. Verwenden Sie schließlich  proxy_cache_use_staleAnweisungen, um den Cache asynchron zu aktualisieren, wenn er abläuft, um zu vermeiden, dass der Benutzer wartet.

  1. Konfiguration für dynamische Inhalte wird nicht zwischengespeichert:
    Für die URL von dynamischen Inhalten, die wir nicht zwischenspeichern möchten, können wir sie als Standortblock konfigurieren, der nicht zwischenspeichert:
server {
    listen 80;
    server_name example.com;

    location / {
        # 不开启缓存
        proxy_no_cache 1;
        # 立即向后端服务器获取最新内容
        proxy_cache_bypass 1;
        # 不会缓存任何数据
        proxy_cache off;
        # 向后端服务器获取最新内容
        proxy_pass http://backend_server;
    }

    # 其他配置...
}

proxy_no_cacheIn der obigen Konfiguration haben wir Anweisungen und  Anweisungen verwendet,  proxy_cache_bypassum sicherzustellen, dass Anfragen in diesem Standortblock nicht zwischengespeichert werden, sondern sofort den neuesten Inhalt vom Backend-Server erhalten. Gleichzeitig  proxy_cache offwird der Cache über Anweisungen abgeschaltet, um unnötige Cache-Verarbeitungen zu verhindern.

Durch die oben differenzierte Cache-Konfiguration können wir das Verhalten des Nginx-Cache flexibler entsprechend den Merkmalen und Anforderungen der URL steuern und die Leistung und Benutzererfahrung der Website verbessern. In tatsächlichen Anwendungen können komplexere differenzierte Cache-Konfigurationen basierend auf spezifischen Geschäftsanforderungen durchgeführt werden.

Supongo que te gusta

Origin blog.csdn.net/tiansyun/article/details/133387413
Recomendado
Clasificación