Nginx Proxy Cache Explained

Při vývoji aplikací se musíte mezi mnoha věcmi zaměřit na čtyři důležité věci: uživatelské zkušenosti, bezpečnost, škálovatelnost a výkon. A tato poslední věc není vždy 100% jasná, když jste jr dev nebo právě začínáte v tomto kódujícím světě. Zatímco dobré hardwarové a rychlé internetové odkazy vám pomohou dosáhnout velkých rychlostí, někdy je vaše aplikace špatně kódovaná a neprovádí očekávání při přechodu z vývojové fáze na produkční servery.

Jedním z nejlepších způsobů, jak dosáhnout skvělého výkonu aplikací je přidávání obsahu do mezipaměti a funkcí, můžete přidávat do statických souborů (obrázky, javascript, css atd.), Do databázových operací a také do dynamického obsahu dodávaného PHP, Python a mnoho dalších programovacích jazyků.

Mezipaměť Nginx proxy

Nginx je webový server, ale také proxy server a jednou z nejpoužívanějších funkcí Nginx je jeho proxy technologie. Při nasazení Nginx jako reverzního proxy nebo vyrovnávacího modulu zatížení můžete povolit výkonné funkce vyrovnávací paměti a to je to, o čem je tento příspěvek přibližně. Na toto téma se pokusíme vysvětlit, co je Mezipaměť Nginx proxy a jak jej povolíte k urychlení vašich webových aplikací.

Co je proxy cache?

Proxy cache je v podstatě data uložená na mezilehlém serveru mezi klientem a posledním serverem. V našem případě je server Nginx proxy server, který uloží kopii původního obsahu do mezipaměti proxy, a jakmile prohlížeč klienta požádá o původní soubor, mezipaměť proxy poskytne kopii, což umožní vyšší rychlost a snižuje využití systémových prostředků ( CPU, RAM a I / O) na cílovém serveru.

Jak mohu povolit mezipaměť Nginx proxy?

Chcete-li povolit mezipaměť serveru proxy, je třeba upravit soubor nginx.conf a nastavit dvě důležité proměnné:

  • proxy_cache_path: cesta, kam uložíte data ukládání do mezipaměti, aldo místo, kde budete konfigurovat nastavení mezipaměti.
  • proxy_cache: směrnice slouží k aktivaci mezipaměti proxy.

Příklad plně funkční konfigurace vyrovnávací paměti proxy:

proxy_cache_path / var / nginx / cache úrovně = 1: 2 keys_zone = app_cache: 10m max_size = 5g inactive = 45m use_temp_path = vypnuto;

server {... ... umístění / produkty {proxy_cache app_cache; proxy_pass http: // app_upstream; } ... ...}

Vysvětlete každou možnost, kterou jsme použili:

proxy_cache_path / var / nginx / cache úrovně = 1: 2 keys_zone = app_cache: 10m max_size = 5g inactive = 45m use_temp_path = vypnuto;

/ var / nginx / cache / je zvolený adresář pro ukládání dat mezipaměti, můžete nastavit jakýkoli adresář, jak se vám líbí.

úrovně = 1: 2 určuje hierarchii adresářů na dvou úrovních pod / var / nginx / cache. To je užitečné, pokud máte velmi velké množství souborů uložených v mezipaměti, abyste zabránili pomalým rychlostem během přístupu k souborům.

keys_zone = app_cache: 10m definuje zónu sdílené paměti 10M, která uloží informace o mezipaměti a metadatech. To pomáhá zrychlit kontroly mezipaměti proxy.

max_size je maximální limit velikosti vyrovnávací paměti, v tomto případě jej nastavíme na 5G. Vždy je doporučeno povolit limit maximální velikosti, aby se zabránilo problémům s diskem, jako kdyby jste je nechali bez omezení, Nginx bude psát data vyrovnávací paměti, dokud nebude použito veškeré dostupné místo na disku.

neaktivní = 45m je limit pro vyrovnávací paměť pro neaktivní obsah, určuje, jak dlouho může být položka uložená v mezipaměti v mezipaměti bez přístupu. Není-li v posledním 45 minutách přístup k souboru, bude jej odstraněn z mezipaměti.

use_temp_path = vypnuto nastaví dočasný adresář na vypnuto, znamená to, že Nginx zapíše dočasné soubory používané pro mezipaměť do stejného adresáře, jak byl dříve definován na proxy_cache_path proměnné (v tomto případě / var / nginx / cache). Abychom se vyhnuli zbytečným I / O operacím, vypnuli jsme ho.

proxy_cache umožňuje ukládání do mezipaměti veškerého obsahu umístěného pod blokem umístění, v tomto případě byl nastaven jako "umístění / produkty", ale můžete jej umístit do mezipaměti veškerého obsahu vašeho webu, například:

umístění /  {

proxy_cache app_cache;
proxy_pass http: // app_upstream; }}

Nechci ukládat do mezipaměti některé objekty, co mohu udělat?

Pokud je váš proxy_cache nastaven pod blokem umístění, který obsahuje veškerý obsah (umístění /), můžete zabránit ukládání do mezipaměti jakýchkoli souborů, které obsahují sadu Cache-Control Private, No-Cache a No-Store, a také hlavičky obsahující soubor Set-Cookie nebude uložen do mezipaměti, je nastaven na původním serveru a Nginx respektuje tato nastavení, aby se zabránilo ukládání nepotřebných souborů do mezipaměti. Pokud potřebujete další informace, přečtěte si tento zajímavý dokument Google Řízení mezipaměti a jaké jsou dostupné možnosti.

Jak mohu vymazat mezipaměť proxy?

Existují složité způsoby, jak odstranit obsah mezipaměti a existují rychlé způsoby. Chytrá cesta používá proxy_cache_purge Tato směrnice může být nakonfigurována tak, aby stanovila určité podmínky, kde Nginx dokáže zjistit, zda je požadavek odstraněním nebo žádostí o přístup, a jednat tak, že odstraní klíč vyrovnávací paměti z uložené mezipaměti. To je užitečné, když musíte odstranit některé soubory mezipaměti a ne všechny z nich.

A rychlý způsob, jak odstranit celou mezipaměť, je pouze vymazáním souborů mezipaměti:

najít / var / nginx / cache -type f -delete služba nginx restart

Jak mohu zkontrolovat, zda Nginx proxy cache funguje?

Jednoduché: Podívejte se na adresář / var / nginx / cache, pokud v mezipaměti proxy pracuje, měli byste vidět spoustu souborů vytvořených uvnitř tohoto adresáře. Můžete to provést spuštěním:

ls-alh / var / nginx / cache

závěr

Nginx je výkonný a robustní webový server, který obsahuje mnoho možností ukládání do mezipaměti, jak jsme viděli v tomto příspěvku pomocí funkce mezipaměti proxy, která vám pomůže ukládat do mezipaměti důležitý obsah na webovém serveru a urychlit vaše aplikace. Nezapomeňte, že výkon není důležitý pouze proto, aby se zabránilo přetížení serveru a pomalé rychlosti, ale také zachovat skvělé uživatelské prostředí.

Jaké jsou vaše zkušenosti s funkcí Nginx Proxy Cache? Zanechte své připomínky níže.

Přečtěte si více o mezipaměti Nginx Proxy od Nginx oficiální dokumenty

Napsat komentář