INTEGRITY Dokumentace

Cache keys

Cache Key je identifikátor, který Cloudflare používá pro soubor v naší mezipaměti, a Cache Key Template definuje identifikátor pro danou žádost HTTP.

Výchozí klíč mezipaměti obsahuje:

  1. Úplná URL adresa:
    • schéma, tedy HTTP nebo HTTPS.
    • hostitel, například www.cloudflare.com
    • URI s řetězcem dotazu, například /logo.jpg?utm_source=newsletter
  2. Hlavička Origin odeslaná klientem (pro podporu CORS).
  3. x-http-method-override, x-http-method, a x-method-override hlaviček.
  4. x-forwarded-host, x-host, x-forwarded-scheme (pokud se nejedná o http nebo https), x-original-url, x-rewrite-url, a forwarded hlaviček.

Vytvoření vlastních cache keys

Custom Cache Keys umožňují přesně nastavit cacheovatelnost libovolného prostředku. Přinášejí výhodu větší kontroly, mohou ale snížit vaši cache hit rate a způsobit cache sharding:

  1. V dashboardu Cloudflare přejděte na Cache Rules stránce.

    Přejděte na Cache Rules ↗
  2. Vyberte Vytvořit pravidlo.

  3. V části Když příchozí požadavky odpovídají, definujte výraz pravidla.

  4. V části Poté, v Způsobilost pro ukládání do mezipaměti sekci vyberte Způsobilé pro cache.

  5. Přidejte Cache Key nastavení k pravidlu a vyberte odpovídající Query String nastavení.

  6. Můžete také vybrat nastavení pro Hlavičky, Cookie, Host, a Uživatel.

  7. Chcete-li pravidlo uložit a nasadit, vyberte Nasadit. Pokud ještě nejste připraveni pravidlo nasadit, vyberte Save as Draft.

Cache Key Template

Existuje několik běžných důvodů pro změnu Cache Key Template. Šablonu Cache Key Template můžete změnit mimo jiné z těchto důvodů:

Vliv nastavení SSL na chování mezipaměti

Cloudflare $scheme proměnná hraje klíčovou roli v chování mezipaměti, ale její význam se liší v závislosti na typu cache klíče:

Například u režimu Flexible SSL se Cloudflare k origin serveru vždy připojuje přes HTTP, bez ohledu na to, zda návštěvník používá HTTP nebo HTTPS. Ve výchozí konfiguraci to vede ke stejnému klíči mezipaměti pro oba protokoly.

Mějte na paměti, že změny v nastavení SSL mohou při použití výchozího cache key vést k invalidaci mezipaměti:

Vysvětlení, jak $scheme ovlivňuje vaši konfiguraci ukládání do mezipaměti, je klíčové při změně režimů SSL, abyste předešli neočekávanému chování mezipaměti.

Cache Level: Ignore Query String

Cache Level Ignore Query String vytvoří Cache Key, který obsahuje všechny prvky výchozího cache key, kromě query stringu v URI, který již není zahrnut. Například u požadavku na http://example.com/file.jpg?something=123 a požadavek na http://example.com/file.jpg?something=789 budou mít v tomto případě stejný klíč mezipaměti.

Nastavení Cache Key

Následující pole řídí Cache Key Template.

Query String

Query string určuje, které parametry z URL se zahrnou do Cache Key. Můžete include konkrétní parametry řetězce dotazu nebo exclude pomocí příslušných polí. Pokud zahrnete parametr řetězce dotazu, value parametru query stringu se použije v Cache Key.

Příklad

Pokud do URL zahrnete řetězec dotazu foo, jako je https://www.example.com/?foo=bar, pak se v Cache Key objeví bar. Právě jedno z include nebo exclude se očekává.

Poznámky k použití

Hlavičky

Hlavičky určují, které hlavičky se zahrnou do Cache Key. Podobně jako u Query String můžete zahrnout konkrétní hlavičky nebo vyloučit výchozí hlavičky.

Když zahrnete hlavičku, její hodnota se zahrne do Cache Key. Pokud například požadavek HTTP obsahuje hlavičku HTTP jako X-Auth-API-key: 12345, a zahrnete X-Auth-API-Key header ve vaší Cache Key Template, pak 12345 se objeví v Cache Key.

V Zahrnout hlavičky a vybrané hodnoty sekci můžete do cache key přidat názvy hlaviček a jejich hodnoty. U vlastních hlaviček jsou hodnoty volitelné, ale u následujících omezených hlaviček musíte uvést jednu až 10 konkrétních hodnot:

Chcete-li zkontrolovat přítomnost hlavičky bez zahrnutí její skutečné hodnoty, použijte Kontrola přítomnosti možnost.

V současnosti můžete vyloučit pouze Origin hlavičku. Origin hlavička je vždy zahrnuta, pokud není výslovně vyloučena. Zahrnutí Hlavička Origin v cache key je důležité pro vynucení CORS.

Dále nelze uvést následující hlavičky:

Host

Host určuje, která hlavička Host se zahrne do Cache Key.

Stejně jako query_string nebo header, cookie určuje, které cookies se objeví v Cache Key. Můžete zahrnout přímo hodnotu cookie, nebo jen ověřit přítomnost konkrétní cookie.

Poznámky k použití

Cookies specifické pro Cloudflare nelze zahrnout. Cloudflare cookies mají prefix __cf, například __cflb

Uživatelské funkce

Pole uživatelských funkcí přidávají do Cache Key informace o koncovém uživateli (klientovi).

Dostupnost

Dostupnost možností cache keys se liší podle vašeho plánu.

Free Pro Business Enterprise
Cache deception armor Ano Ano Ano Ano
Cache podle typu zařízení Ano Ano Ano Ano
Ignorovat řetězec dotazu Ano Ano Ano Ano
Seřadit query string Ano Ano Ano Ano
Query string Ne Ne Ne Ano
Hlavičky Ne Ne Ne Ano
Cookie Ne Ne Ne Ano
Host Ne Ne Ne Ano
Uživatelské funkce Ne Ne Ne Ano

Řešení potíží

Můžete použít Cloudflare Trace zjistit, které nastavení Cache Key bylo u vašeho požadavku uplatněno. Když odešlete požadavek přes nástroj Trace a požadavek byl obsloužen z mezipaměti, zobrazí se zásah do mezipaměti (cache hit) v Parametry mezipaměti sekce. Poté vyberte Zobrazit podrobnosti parametru zjistit přesně, které vlastnosti Cache Key byly použity.

Omezení

Prefetch funkce není kompatibilní s Custom Cache Keys. S Cache Rules, vlastní cache key se používá k ukládání všech prostředků do cache. Prefetch ale vždy používá výchozí cache key. To vede k neshodě klíčů.