GNU/Linux >> Tutoriales Linux >  >> Linux

nginx como proxy de caché que no almacena nada en caché

Asegúrate de que tu backend no devuelva Set-Cookie encabezamiento. Si Nginx lo ve, deshabilita el almacenamiento en caché.

Si este es tu caso, la mejor opción es arreglar tu backend. Cuando reparar el backend no es una opción, es posible indicarle a Nginx que ignore Set-Cookie encabezado

proxy_ignore_headers "Set-Cookie";
proxy_hide_header "Set-Cookie";

Ver la documentación

proxy_ignore_header se asegurará de que se lleve a cabo el almacenamiento en caché. proxy_hide_header se asegurará de que la carga útil de la cookie no se incluya en la carga útil almacenada en caché. Esto es importante para evitar filtrar cookies a través de la caché de NGINX.


Me gustaría agregar que múltiples opciones de configuración y combinaciones pueden deshabilitar el almacenamiento en caché de proxy en Nginx. Desafortunadamente, esto está mal documentado.

En mi configuración puse proxy_buffering on y habilitó el almacenamiento en caché como se esperaba.


después de revisar múltiples respuestas y comentarios, encontré que esta configuración finalmente funciona:

10m =10mb caché de claves, max_size a 2GB , inactive=120m (actualizar desde la fuente después de 120 minutos de inactividad), use_temp_path=off (reducir io)

proxy_cache_valid - estado de caché de 200 y 302 durante 60 minutos

proxy_cache_path /tmp/cache levels=1:2 keys_zone=default_cache:10m max_size=2g
                 inactive=120m use_temp_path=off;
proxy_cache_key "$scheme$request_method$host$request_uri";
proxy_cache_valid 200 302 60m;

server {
    listen       80;
    server_name  example.com;

    # https://www.nginx.com/blog/nginx-caching-guide
    location / {
        proxy_cache default_cache;
        proxy_buffering on;
        proxy_ignore_headers Expires;
        proxy_ignore_headers X-Accel-Expires;
        proxy_ignore_headers Cache-Control;
        proxy_ignore_headers Set-Cookie;

        proxy_hide_header X-Accel-Expires;
        proxy_hide_header Expires;
        proxy_hide_header Cache-Control;
        proxy_hide_header Pragma;

        add_header X-Proxy-Cache $upstream_cache_status;
        proxy_pass http://ip-of-host:80;

        #set            $memcached_key "$uri?$args";
        #memcached_pass 127.0.0.1:11211;
        # error_page     404 502 504 = @fallback;
    }
}

Linux
  1. Cómo configurar un proxy inverso Nginx

  2. nginx - 413 Entidad de solicitud demasiado grande

  3. ¿Cómo configurar el almacenamiento en caché de Redis para acelerar WordPress en Ubuntu 18.04?

  4. proxy http sobre ssh, no calcetines

  5. Forzar dd a no almacenar en caché o no leer desde caché

Cómo configurar el proxy inverso de Nginx

NGINX como proxy inverso para aplicación de nodo o angular

Cómo instalar Varnish Cache en CentOS 7

Cómo configurar Nginx Cache en un servidor LAMP

Cómo configurar la caché de Nginx en el servidor LEMP

Cómo habilitar el almacenamiento en caché FastCGI del lado del servidor con Nginx y PHP