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:
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:
Az eredmény a folyamatonkénti kapcsolatok maximális száma lesz. Ezután állítsa be az alábbit:
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:
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