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

Causas e soluções para o problema de cache do nginx não funcionar

Conteúdo da seção nginx.conf:

  proxy_temp_path  /nginx/cache/temp;
  proxy_cache_path /nginx/cache/níveis de caminho =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-Aceleração-Expira Expira Cache-Conjunto de Controle-Cookie;
    proxy_cache cache_test;
    #Definir a chave do cache
    #Definir a chave do cache proxy_cache_key $host$uri$is_args$args;
    #Definir o código de status para200 e304respostas podem ser armazenadas em cache, e o tempo de cache é1dia
    proxy_cache_valid 200 304 1d;
    expires 30d;
  }

Razões para o nginx não armazenar em cache

Pelo padrão, se o nginx armazenar em cache é decidido conjuntamente pelo servidor de cache nginx e pelo servidor de origem, o servidor de cache precisa seguir rigorosamente o cabeçalho da resposta do servidor de origem para determinar se deve armazenar em cache e por quanto tempo.

Os cabeçalhos principais são os seguintes:

Cache-controle: não-cache, não-Armazenar

Se aparecer esses dois valores, o servidor de cache nginx nunca armazenará em cache.

Expira:1980-01-01

Se aparecer uma data anterior à atual, também não será armazenada em cache.

Solução para não armazenar em cache

2.1 Método um:

Modifique o cabeçalho da resposta do programa ou do servidor web de origem

2.2 Método dois:

nginx proxy adiciona a seguinte linha direto:

proxy_ignore_headers X-Aceleração-Expira Expira Cache-Conjunto de Controle-Cookie;

Resumo

Isso é tudo o que há neste artigo. Espero que o conteúdo deste artigo ajude a aprendizagem ou trabalho de alguém. Se tiverem dúvidas, podem deixar comentários para trocar ideias.

Você também pode gostar