NGINX je popularan, besplatan web poslužitelj otvorenog koda. Zadane konfiguracije NGINX-a dovoljno su dobre za rad web poslužitelja.
Međutim, ako želite koristiti NGINX u potpunosti, morate se igrati s njegovim konfiguracijskim datotekama i postaviti parametre koji će optimizirati izvedbu poslužitelja. Konfiguracijske datoteke pronaći ćete u /etc/nginx imenik na Linux stroju.
Što je NGINX?
NGINX je moderan web poslužitelj koji možete koristiti kao medijski streamer, poslužitelj pošte, obrnuti proxy, balanser opterećenja, poslužitelj predmemorije i više.
Koriste ga mnogi veliki profili kao što su VMware, IBM, Cisco, Apple, Microsoft LinkedIn, Netflix, Facebook, Twitter itd., NGINX je nadaleko poznat po svojim vrhunskim performansama. Još jedna prednost korištenja NGINX-a je to što ga je lako konfigurirati i naučiti.
Preduvjeti za podešavanje performansi NGINX-a na Linuxu
Morate zadovoljiti sljedeće zahtjeve prije nego počnete s konfiguracijama NGINX-a:
- NGINX poslužitelj postavljen i konfiguriran na Linuxu
- Osnovno razumijevanje NGINX-a i njegovih konfiguracijskih datoteka
Ako ispunjavate ove zahtjeve, spremni ste podesiti NGINX za optimalne performanse. Pogledajmo kako to učiniti.
1. Konfigurirajte radne procese u NGINX-u
NGINX arhitektura sastoji se od jednog glavnog procesa i nekoliko radnih procesa. Posao glavnog procesa je procijeniti konfiguraciju i upravljati radnicima. S druge strane, uloga radnog procesa je rješavanje dolaznih zahtjeva i stvaranje veze između klijenta i poslužitelja.
Vrijednost procesa postavljena je na auto prema zadanim postavkama. Ovo postavlja broj radnih procesa jednak broju dostupnih CPU jezgri. Da biste saznali koliko CPU jezgri ima u vašem sustavu, pokrenite sljedeću naredbu:
grep procesor /proc/cpuinfo | wc -l
Ako želite povećati broj radnih procesa, morate to konfigurirati u NGINX konfiguracijskoj datoteci.
Otvorite datoteku s nanom:
nano itd/nginx/nginx.conf
Da biste konfigurirali više radnih procesa, promijenite zadanu vrijednost na najveći broj dostupnih CPU jezgri u vašem sustavu.
2. Konfigurirajte veze radnika
Još jedan parametar koji možete modificirati kako biste poboljšali izvedbu NGINX-a su veze radnika. Ovo je najveći broj TCP veza koje svaki radni proces može istovremeno obraditi.
Većina sustava ima zadanu vrijednost od 512 veza, ali mnogi moderni sustavi podržavaju i veći broj. Možete provjeriti koliko veza vaš sustav podržava pomoću:
ulimit -n
Izlaz će biti najveći broj podržanih veza. Zatim možete izmijeniti radničke_veze varijablu u NGINX konfiguracijskoj datoteci za poboljšanje performansi.
3. Dopusti GZIP kompresiju u NGINX-u
NGINX koristi GZIP za kompresiju i dekompresiju datoteka. Ako je omogućeno u NGINX konfiguracijskoj datoteci, možete uštedjeti propusnost i povećati vrijeme učitavanja web stranice kada je veza spora.
Da biste omogućili GZIP kompresiju, dodajte sljedeće retke u NGINX konfiguracijsku datoteku:
poslužitelj {
gzip uključen;
gzip_vari na;
gzip_min_length 10240;
gzip_proxied istekao ne-predmemorijaNe-trgovinaprivatna auth;
gzip_types tekst/običan tekst/css tekst/xml tekst/javascript aplikacija/x-javascript aplikacija/xml;
gzip_onemogući "MSIE [1-6]\.";
}
4. Ograničite vrijednost vremenskog ograničenja u NGINX-u
Smanjene vrijednosti vremenskog ograničenja također igraju važnu ulogu u poboljšanju performansi NGINX-a. The držati na životu veze smanjuju opterećenje procesora i mreže prilikom otvaranja i zatvaranja veza.
Možete promijeniti sljedeće parametre u konfiguracijskoj datoteci kako biste ograničili vremenska ograničenja:
http
{
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
slanje_timeout 10;
}
5. Podesite veličinu međuspremnika
Također možete prilagoditi NGINX međuspremnike kako biste optimizirali rad poslužitelja. Ako je veličina međuspremnika preniska, tada će NGINX pisati u privremenu datoteku koja uzrokuje neprestano izvođenje velikih I/O operacija.
Morate postaviti sljedeće parametre međuspremnika kako bi NGINX funkcionirao najbolje:
http
{
client_body_buffer_size 10K;
client_header_buffer_size 1k;
klijent_maks.veličina_tijela 8m;
large_client_header_buffers 4 4k;
}
6. Onemogućite zapise pristupa ili omogućite međuspremnik zapisnika pristupa
Dnevnici zauzimaju veliku količinu diskovnog prostora i CPU/IO ciklusa koji mogu utjecati na performanse poslužitelja ako bilježi svaki zahtjev.
Možete onemogućiti zapisnike pristupa što će uštedjeti prostor na disku i procesorsku obradu. Da biste onemogućili zapisnike pristupa, dodajte sljedeći redak u NGINX konfiguracijsku datoteku:
pristup_odjava;
Dnevnici su važni jer pomažu u rješavanju problema. Potpuno onemogućavanje zapisnika nije dobra praksa. U tom slučaju možete omogućiti međuspremnik zapisa pristupa. Ovo će omogućiti NGINX-u da međuspremnik niza zapisnika i zapiše ih zajedno u datoteku dnevnika umjesto primjene različitih operacija zapisnika na svaki zahtjev.
Dodajte sljedeći redak u NGINX konfiguracijsku datoteku kako biste omogućili međuspremnik zapisa pristupa:
pristup_log/var/log/nginx/access.logglavnimeđuspremnik=16k
7. Podesite razdoblje predmemoriranja statičkog sadržaja u NGINX-u
Sadržaj na web stranici koji ostaje isti na svim stranicama poznat je kao statični sadržaj. Predmemoriranje ovog sadržaja omogućuje njegovo postavljanje na mjesta koja su lako dostupna. Ovaj mehanizam smanjuje korištenje propusnosti, omogućuje brzu dostupnost i posljedično poboljšava performanse web stranice.
Kada klijent zatraži statički sadržaj, poslužitelj će poslužiti predmemoriranu verziju sadržaja. Dodajte sljedeće retke u datoteku virtualnog hosta smještenu u /etc/nginx/sites-available imenik:
lokacija ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
ističe 90d;
}
Ova će konfiguracija spremati datoteke u predmemoriju 90 dana od posljednjeg pristupa pregledniku.
8. Omogućite Open File Cache u NGINX-u
Također možete koristiti parametre predmemorije otvorene datoteke u konfiguracijskoj datoteci NGINX kako biste poboljšali njegovu izvedbu. Ova direktiva omogućuje da se deskriptor datoteke i datoteke koje se često posjećuju pohranjuju u predmemoriju na poslužitelju.
Dodajte sljedeće retke u http odjeljak u konfiguracijskoj datoteci za omogućavanje otvorene predmemorije datoteke:
http {
open_file_cache max=1024 neaktivan=10s;
open_file_cache_valja 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
}
Izvucite najbolje iz NGINX-a mijenjajući njegove konfiguracijske datoteke
Dobra praksa koju treba slijediti dok mijenjate konfiguracije je baviti se jednom postavkom i testirati je. Ako radi, prijeđite na sljedeću postavku. Ako nije, uvijek možete vratiti konfiguraciju na zadanu vrijednost.
Izmjenom parametara konfiguriranih u NGINX konfiguracijskim datotekama kao što su nginx.conf i datoteke virtualnog hosta, možete hakirati NGINX kako biste dobili najbolje performanse.