GNU/Linux >> Znalost Linux >  >> Linux

nginx jako proxy mezipaměti nic neukládá do mezipaměti

Ujistěte se, že váš backend nevrací Set-Cookie záhlaví. Pokud to Nginx uvidí, zakáže ukládání do mezipaměti.

Pokud je to váš případ, nejlepší možností je opravit váš backend. Když oprava backendu není možná, je možné dát Nginxu pokyn, aby ignoroval Set-Cookie záhlaví

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

Viz dokumentace

proxy_ignore_header zajistí, že proběhne ukládání do mezipaměti. proxy_hide_header zajistí, že užitečné zatížení souborů cookie nebude zahrnuto do užitečného zatížení uloženého v mezipaměti. To je důležité, aby se zabránilo úniku souborů cookie prostřednictvím mezipaměti NGINX.


Chtěl bych dodat, že více možností konfigurace a kombinací může zakázat ukládání do mezipaměti proxy v Nginx. Bohužel je to špatně zdokumentováno.

Ve své konfiguraci jsem nastavil proxy_buffering on a podle očekávání povolil ukládání do mezipaměti.


po procházení několika odpovědí a komentářů jsem zjistil, že tato konfigurace konečně funguje:

10m =10mb mezipaměť klíčů, max_size na 2GB , inactive=120m (obnovení ze zdroje po 120 minutách nečinnosti), use_temp_path=off (pro snížení io)

proxy_cache_valid - stav mezipaměti 200 a 302 po dobu 60 minut

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. Jak nakonfigurovat mezipaměť Redis pro zrychlení WordPressu na Ubuntu 18.04?

  2. http proxy přes ssh, ne ponožky

  3. Vynutit dd neukládat do mezipaměti nebo nečíst z mezipaměti

  1. Vylepšete mezipaměť databáze MySQL

  2. Ukládání/předběžné načítání souborů v Linuxu do RAM

  3. Reverzní proxy Nginx bez ukončení SSL

  1. nginx - 413 entita požadavku je příliš velká

  2. Reverzní proxy s Nginx:Průvodce nastavením krok za krokem

  3. "ocas -f | Iconv -fsjis” nevydává nic?