Turpinot lietot mājas lapu cloudhosting.lv, Jūs piekrītat sīkdatņu izmantošanas noteikumiem. Uzzināt vairāk. Piekrītu
Kā novērst "Resursa pagaidu nepieejamība" kļūdu nginx serverī?
Šajā pamācībā tiks apspriesta kombinācija nginx + php-fpm (uzrakstīšanas laikā PHP versija bija 7.3).
Saskaroties ar mazu slodzi uz servera, vietnes sāk izvadīt 502 Bad Gateway kļūdu .Log žurnālos var redzēt līdzīgu attēlu:
[error] 7460#7460: *5365312 connect() to unix:/run/php/php7.3-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream
Šī situācija radās tādēļ, ka operētājsistēma noraida mēģinājumus, ko nginx veic, lai pievienotos Unix soketam. Iemesls var būt tas, ka sasniegts maksimālais savienojumu skaits ar soketu vai maksimālais neatkarīgu savienojumu skaits ar soketu.
Lai pārbaudītu limitus, izpildiet šādu komandu:
sysctl net.core
Mums interesē šādas rindas:
net.core.somaxconn = 128 net.core.netdev_max_backlog = 200
Kļūda radās tāpēc, ka maksimālais savienojumu skaits ir 128, bet maksimālais neatkarīgo savienojumu skaits ir 200.
Lai mainītu limitus, nomainiet rindas failā /etc/sysctl.conf:
net.core.somaxconn = 20000 net.core.netdev_max_backlog = 65535
Parametri tiek piemēroti, izpildot šo komandu:
sysctl -p
Restartējiet php-fpm:
/etc/init.d/php7.3-fpm restart
Lai testētu vietni ar jauno konfigurāciju, izmantojiet loadem utilītu:
./loadem -l 1 https://mansite.ru 200 URL: https://mansite.ru Clients: 2000 Starting MaTps 7.81, Tps 7.81, Err 0.00%, Resp Time 0.966 Completed 8 requests in 1.03 seconds Total TPS: 7.74 Avg. Response time: 0.966 Max Response time: 1.064
Pievērsiet uzmanību Err 0.00%. Tagad tam jābūt vienādam ar 0 (pārbaudiet vietni, pirms maināt sysctl parametrus).