Oktatóanyagok > Hogyan szűrhető és optimalizálható a statikus fájlkérelem az NGINX segítségével?

Hogyan szűrhető és optimalizálható a statikus fájlkérelem az NGINX segítségével?

Közzétéve: 16 január 2020

Cache NGINX Optimization

Az NGINX egy nagy teljesítményű webszerver, amelyet kifejezetten statikus fájlok kezelésére és fordított proxyként használnak, de sokoldalúságának köszönhetően bármilyen típusú helyzetben kihasználható.

Ebben az útmutatóban megtanulhatja, hogyan kell szűrni és optimalizálni a statikus fájlkérelmeket az NGINX segítségével a webhely teljesítményének növelése és a szerver terhelésének csökkentése érdekében néhány trükkel, például a Gzip-tömörítés engedélyezésével, a folyamatok / kapcsolatok számának vagy a pufferek méretének megváltoztatásával.

Először csatlakozzon a szerverhez SSH kapcsolaton keresztül. Ha még nem tette meg, akkor ajánlott átböngésznie a Hogyan javítható az SSH biztonság az Ubuntu 18.04-en? útmutatónkat a folyamat megkezdése előtt. Helyi szerver esetén folytassa a következő lépéssel, és nyissa meg a szerver terminált.

A konfigurációs paraméterek módosítása

Nyissa meg az NGINX konfigurációs fájlt egy szerkesztő, például nano vagy vi használatával. Ebben a példában mi a nanot használtuk.

$ sudo nano /etc/nginx/nginx.conf

A Gzip tömörítés engedélyezése

A Gzip-tömörítés engedélyezésével csökkenteni lehet a továbbítandó adatok mennyiségét. Vigyázzon, ne növelje túl a Gzip tömörítési szintjét, mert ez befolyásolhatja a CPU teljesítményét.

gzip             on;

gzip_comp_level  2;

gzip_min_length  1000;

gzip_proxied     expired no-cache no-store private auth;

gzip_types       text/plain application/x-javascript text/xml text/css application/xml;

A folyamatok és kapcsolatok számának beállítása

A „worker_processes” paraméter az NGINX által elindított folyamatok számára utal. A folyamatok számának általában meg kell egyeznie a szerver magjainak számával. Például, ha a kiszolgálónak 4 magos processzora van, akkor a 4 értékre vonatkozó paramétert a következőképpen kell beállítani:

worker_processes 4;

A worker_connections paraméter a kliensek számára vonatkozik, amelyeket egyetlen folyamat fog kiszolgálni. A konfiguráció optimális értékének beállításához csak a következő paranccsal kell ellenőriznie a magok határait:

$ ulimit -n

Az eredmény a folyamatonkénti kapcsolatok maximális száma lesz. Ezután állítsa be az alábbit:

worker_processes 1024;

A pufferek méretének megváltoztatása

Ha a pufferek mérete túl alacsony, az NGINX kénytelen ideiglenes fájlokat létrehozni, ami számos lemezműveletet okoz. Ennek elkerülése érdekében állítsa be helyesen a pufferek méretét.

client_max_body_size: a kliens igény maximális méretét jelzi

client_body_buffer_size: a POST kérések pufferméretére utal

client_header_buffer_size: a puffer méretére vonatkozik a kliens kérés fejlécéhez viszonyítva

Ha ezeket a paramétereket a következő értékekkel módosítja, jó eredményre tehet szert:

client_max_body_size 8m;

client_body_buffer_size 10K;

client_header_buffer_size 1k;

A gyorsítótár időtartamának módosítása

A statikus fájlok gyorsítótárának időtartamának kezeléséhez mindössze annyit kell tennie, hogy a fájlkiterjesztéseket és azok időtartamát a következő módon adja meg:

location ~*.(jpg|jpeg|png|gif|ico|css|js)$ {

expires 365d;

}

ahol a 365d-vel meg van adva, hogy a kiterjesztések gyorsítótára 365 napig fog tartani.

Az időkorlátok csökkentése

A client_body_timeout és client_header_timeout paraméterek a kérelem törzsének vagy fejlécének várakozási idejét jelzik. Ha a szerver ezen időn belül nem kapja meg a törzset vagy a fejlécet, a kapcsolat időtúllépési hibával fejeződik be.

A send_timeout paraméter jelzi a két olvasási művelet közötti maximális időt. Ha ezt az időt túllépik, az NGINX megszakítja a kapcsolatot a klienssel.

Ehelyett a keepalive_timeout paraméter a kapcsolat életben tartásának maximális időtartamára utal, mielőtt megszakítaná.

Az alábbi az értékek beállításával jó eredményre tehet szert:

client_body_timeout 12;

client_header_timeout 12;

send_timeout 10;

keepalive_timeout 15;

A naplók letiltása

Az NGINX figyeli a naplófájlban tett minden kérést. A funkció letiltásához mindössze annyit kell tennie, hogy megváltoztatja az access_log paramétert az alábbi szerint:

access_log off;

Változások alkalmazása

Indítsa újra az NGINX szolgáltatást a módosítások végrehajtásához:

$ sudo service nginx restart