Norint išvengti 502-504 klaidų esant dideliam srautui, pagrindiniai NGINX nustatymai, į kuriuos reikia atkreipti dėmesį, yra šie:
1. Darbuotojų procesai ir ryšiai:
- „darbuotojo_procesai“: įsitikinkite, kad optimalus darbuotojo procesų skaičius atitinka procesoriaus branduolių skaičių. Esant dideliam srautui, nustatykite „worker_processes“ į „auto“, kad NGINX galėtų automatiškai nustatyti optimalią reikšmę[1][2][5].
- „darbuotojo_ryšiai“: padidinkite maksimalų jungčių, kurias vienu metu gali apdoroti kiekvienas darbuotojo procesas, skaičių. Jei srautas didelis, nustatykite „worker_connections“ į didesnę reikšmę, pvz., 4096[1][2][5].
2. Laiko laikas ir neveikimo laikas:
- „Keepalive_timeout“: nustatykite vertę, artimą jūsų vidutiniam atsako laikui, kad užtikrintumėte, jog palaikomi ryšiai būtų naudojami efektyviai. Jei srautas didelis, nustatykite „keepalive_timeout“ į mažesnę reikšmę, pvz., 10 sekundžių[1][2][5].
- `client_header_timeout`: nustatykite vertę, kuri subalansuoja kliento užklausos antraštės apdorojimą ir serverio išteklių naudojimą. Jei srautas didelis, nustatykite „kliento_antraštės_laikas baigtis“ į mažesnę vertę, pvz., 10 sekundžių[1][2][5].
3. FastCGI nustatymai:
- "fastcgi_buffer_size", "fastcgi_buffers", "fastcgi_busy_buffers_size" ir "fastcgi_temp_file_write_size": patikslinkite šiuos nustatymus, kad optimizuotumėte PHP apdorojimą ir sumažintumėte 502 klaidų tikimybę[3][5].
4. Saugojimas talpykloje ir glaudinimas:
- „gzip on“: įgalinkite gzip glaudinimą, kad sumažintumėte pralaidumo naudojimą ir pagerintumėte puslapio įkėlimo laiką[3][5].
- „Open_file_cache“ ir susiję nustatymai: įdiekite periodiškai pasiekiamų failų talpyklą, kad sumažintumėte serverio apkrovą ir delsą[5].
5. Stebėjimas ir trikčių šalinimas:
- Reguliariai stebėkite prieigos žurnalus, kad nustatytumėte našumo kliūtis ir pašalintumėte triktis[4][5].
Optimizuodami šiuos nustatymus galite sumažinti 502–504 klaidų tikimybę esant dideliam srautui ir užtikrinti, kad jūsų NGINX serveris efektyviai apdorotų užklausas.
Citatos:[1] https://www.freshblurbs.com/blog/2015/11/28/high-load-nginx-config.html
[2] https://www.webhi.com/how-to/optimize-nginx-configuration-for-high-traffic-websites-busy-server/
[3] https://phpenterprisesystems.com/web-servers/215-example-nginx-configuration-for-high-traffic-high-load-php-web-sites
[4] https://blog.martinfjordvald.com/optimizing-nginx-for-high-traffic-loads/
[5] https://webdock.io/en/docs/webdock-control-panel/optimizing-performance/optimizing-nginx-high-traffic-websites