English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Cause e soluzioni dei problemi di cache di nginx che non viene memorizzata

contenuto di parte di nginx.conf:

  proxy_temp_path  /nginx/cache/temp;
  proxy_cache_path /nginx/cache/path levels=1:2 keys_zone=cache_test:2048m inactive=7d max_size=10g;
......
 location ~ .(gif|jpg|jpeg|png)$ {
    proxy_pass http://upstreams;
    proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie;
    proxy_cache cache_test;
    #Configurazione della cache
    #Configurazione della chiave di caching
    #Configurazione per cui le risposte con stato di codice 200 e 304 possono essere cache, e il tempo di caching è di 1 giorno
    proxy_cache_valid 200 304 1d;
    expires 30d;
  }

Ragioni per cui nginx non fa caching

Per impostazione predefinita, se nginx deve caching è deciso congiuntamente dal server di caching nginx e dal server web di origine, il server di caching deve rispettare rigorosamente l'intestazione della risposta del server web di origine per determinare se caching e il tempo di caching.

Gli header principali sono i seguenti:

Cache-control: no-cache, no-store

Se compaiono questi due valori, il server di caching nginx non memorizzerà mai nella cache

Expires: 1980-01-01

Se compare una data anteriore all'ora corrente, non verrà memorizzata nella cache.

Soluzione per la soluzione di caching negativa

Metodo 1: 2.1

Modifica l'intestazione della risposta del programma o del server web di origine

Metodo 2: 2.2

Aggiungi la seguente frase direttamente all'代理 nginx:

proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie;

Conclusione

Questo è tutto il contenuto dell'articolo, spero che il contenuto di questo articolo possa essere di aiuto alla tua apprendimento o lavoro, se hai domande puoi lasciare un commento per discuterlo.

Ti potrebbe interessare