GNU/Linux >> Znalost Linux >  >> Linux

Jak vyladit NGINX pro nadcházející rok 2022?

Nginx je bezplatný open source vysoce výkonný a lehký webový server, který se používá jako vyrovnávání zátěže, reverzní proxy, HTTP cache a mail proxy. Ačkoli je Nginx ve srovnání s jinými webovými servery zcela nový, jeho popularita stoupá díky vysokému výkonu. S vaší výchozí konfigurací Nginx můžete dosáhnout rychlého výkonu, ale můžeme výkon Nginx na maximum zvýšit změnou některých konfigurací.

V tomto článku se seznámíte s 8 různými nejlepšími způsoby, jak zvýšit Nginx pro lepší výkon. Abych demonstroval příklad v tomto článku, nainstaloval jsem Nginx na systém Ubuntu 20.04 LTS.

Upravit pracovní procesy

Všechny požadavky webového serveru v Nginx jsou zpracovávány pracovním procesem. V Nginx jsou pracovní procesy architekty jako více pracovních procesů pro zpracování požadavku a jeden hlavní proces je zodpovědný za řízení všech pracovních procesů a také za analýzu konfigurace. Ve výchozí konfiguraci Nginx je parametr pracovního procesu nastaven na auto, což vytváří pracovní proces podle dostupného jádra CPU. Jak doporučují oficiální dokumenty Nginx, je to nejlepší způsob, jak udržet pracovní proces podle dostupného jádra CPU, takže doporučeným parametrem je auto. Pokud vás zajímá, kolik jader mají vaše procesory, jednoduše spusťte následující příkaz.

$ grep processor /proc/cpuinfo | wc -l

Výchozí hodnotu pracovního procesu můžete změnit v konfiguračním souboru Nginx, který se nachází na adrese /etc/nginx/nginx.conf. Pokud váš server zažívá vyšší provoz a potřebujete přidat více pracovních procesů, je lepší upgradovat server na více jádrových procesorů.

Zvýšení limitu počtu pracovních připojení

Pracovní připojení je celkový počet současných připojení, které může každý dostupný pracovní proces spravovat. Ve výchozím nastavení může pracovní proces spravovat 512 připojení najednou. Před úpravou hodnoty pracovního připojení musíte zkontrolovat systém maximálního připojení, aby bylo možné pomocí následujícího příkazu aktualizovat konfiguraci připojení podle něj.

$ ulimit -n

Implementace komprese obsahu

Pro kompresi webového obsahu používá Nginx gzip ke zvýšení doby doručení obsahu a snížení využití šířky pásma sítě. V konfiguraci můžete najít konfiguraci gzip v komentovaném stavu, ale můžete odkomentovat a upravit gzip podle svých potřeb. Protože proces komprese gzip využívá systémové prostředky, pokud máte omezené prostředky, upravte konfiguraci podle toho, jako je komprimace pouze určitého typu souboru, úroveň komprese atd.

Ukládání statického obsahu do mezipaměti

V tomto moderním vývoji webu je většina obsahu staticky předávána prohlížeči nebo klientovi, takže ukládání statických souborů do mezipaměti načte obsah rychleji. Při načítání obsahu z mezipaměti také sníží požadavek na připojení k Nginx. Chcete-li spustit proces ukládání do mezipaměti, přidejte do konfiguračního souboru virtuálního hostitele Nginx následující direktivu.

location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {expires 30d;}

Výše uvedená směrnice ukládá zdrojový soubor do mezipaměti po dobu 30 dnů. Datum vypršení platnosti mezipaměti můžete nastavit podle svých potřeb.

Načítání do vyrovnávací paměti

Ukládání do vyrovnávací paměti může zefektivnit komunikaci mezi klientem a serverem, protože obsahuje část odpovědi, dokud se vyrovnávací paměť nezaplní. Pokud je odpověď příliš vysoká než skutečná velikost vyrovnávací paměti, Nginx zapíše odpověď na disk, což může vést k problému s výkonem. Můžete aktualizovat následující direktivu a upravit velikost vyrovnávací paměti podle vašich požadavků.

Client_body_buffer_size :Určuje skutečnou velikost vyrovnávací paměti, která se používá k uložení dat odezvy klienta.

Client_header_buffer_size :Spravuje velikost hlavičky klienta. Normálně stačí nastavit hodnotu na 1k.

Client_max_body_size :Omezuje maximální odezvu těla povolenou klientovi. Pokud velikost těla překročí svou hodnotu, Nginx vyvolá chybu s „Požadavek na entitu je příliš velký“.

Chcete-li upravit velikost ukládání do vyrovnávací paměti, přidejte do sekce http následující direktivu.

http {
…
client_body_buffer_size 80k;
client_max_body_size 9m;
client_header_buffer_size 1k;
...
}

Přístup k ukládání do vyrovnávací paměti

Protokolování je jednou z klíčových rolí při ladění problému a auditování. Protože protokolování ukládá všechna data požadavku, která ovlivňují jak I/O cykly, tak CPU, což má za následek problémy s výkonem. Tento druh dopadu můžete omezit povolením ukládání do vyrovnávací paměti protokolu. Jakmile velikost vyrovnávací paměti dosáhne svého limitu, Nginx zapíše obsah vyrovnávací paměti do protokolu. Ukládání do vyrovnávací paměti můžete povolit přidáním parametrů vyrovnávací paměti s hodnotami velikosti do direktivy protokolu přístupu.

access_log /var/log/nginx/access.log main buffer=16k;
Code language: JavaScript (javascript)

Nebo můžete zakázat přístupový protokol (pokud není potřeba) následujícím způsobem.

access_log off;

Omezení hodnot časového limitu

Omezení hodnoty časového limitu zvýší výkon Nginx. Nginx bude čekat na žádost o tělo a hlavičku klienta po dané časové období. Pokud neobdrží data odezvy včas, Nginx spustí časový limit pro příslušného klienta. Hodnotu časového limitu lze spravovat pomocí následující směrnice. Chcete-li nastavit dobu trvání časového limitu, zkopírujte a vložte direktivu uvedenou níže v části http.

client_body_timeout 10;
client_header_timeout 10;
keepalive_timeout 13;
send_timeout 10;

Časový limit těla a hlavičky klienta je časový úsek, za který Nginx přečte hlavičku a tělo z požadavku klienta. Pokud není včas dokončen, je požadavek ukončen s chybou časového limitu. Keepalive_timeout je doba, po které nginx zavře připojení klienta keepalive připojení zůstane otevřené. Send_timeout je doba, po kterou musí klient obdržet odpověď zaslanou Nginxem.

Otevřít mezipaměť souborů

V Linuxu je téměř vše soubor, při použití open_file_cache se deskriptor souboru a všechny často používané soubory ukládají do mezipaměti serveru. Zejména při poskytování statických souborů Html pomocí otevřené mezipaměti souborů se zvýší výkon Nginx, protože se otevírá a ukládá mezipaměť do paměti po daný interval. Vložte následující direktivu open_file_cache do sekce http pro zahájení ukládání do mezipaměti.

http {
...
open_file_cache max=1024 inactive=10s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;

Závěr

Toto je 8 způsobů, jak zvýšit výkon Nginx jednoduchou úpravou konfiguračního souboru Nginx. Doufám, že vám přečtení tohoto článku pomůže zahájit zvýšení výkonu Nginx.


Linux
  1. Jak používat balíček Image Optimizer pro WP-CLI

  2. Linux:Jak najít ovladač zařízení používaný pro zařízení?

  3. Jak najít aplikaci pro typ mime v systému Linux?

  1. Jak se Kali vypořádá s nadcházejícím Python 2 End-of-Life

  2. Jak určím soubor klíče pro sshfs?

  3. Jak přinutím sudo, aby požádal o heslo uživatele root?

  1. Jak udělat sudo zapamatovat si heslo déle

  2. Jak změnit rozlišení Bash pro Debian VM?

  3. Jak dostanu sar, aby se ukázal za předchozí den?