|
Pēdējās dienās tīmeklī ir bijušas daudz problēmu ar Nginx 502, un es domāju, ka tā ir problēma ar Nginx, tāpat kā daudzi cilvēki sākumā.
Tīmeklī tiek izmantota nginx + php arhitektūra, un vietne ilgu laiku nav bijusi tiešsaistē, tāpēc optimizācija būtībā ir tikai sākotnējā konfigurācija.
Pārbaudot php-fpm.log tika atrasti brīdinājumi, kas būtībā sakrita ar laiku, kad vietne tika apturēta. Es sākšu šeit.
Sākumā es arī meklēju dokumentāciju, bet nākamajā dienā joprojām bija problēma. Vēlāk es pārbaudīju konfigurācijas failu un tulkoju to (Baidu), un angļu valodas pamats nebija labs. PM modulis ir līdzīgs Apache modulim, kas ir statisks un dinamisks.
Daudzas no internetā minētajām korekcijām galvenokārt balstās uz dinamiku, bet tajās nav teikts, kā definēt šo moduli. Tāpēc ikvienam vajadzētu tuvāk apskatīt konfigurācijas failu, izmantojot dinamisko un statisko pm = statisks
; Pakārtoto procesu skaits, kas jāizveido, ja pm ir iestatīts uz "statisks" un
; Maksimālais pakārtoto procesu skaits, ja PM ir iestatīts uz "Dinamisks" vai "Pēc pieprasījuma".
; Šī vērtība nosaka vienlaicīgu pieprasījumu skaita ierobežojumu, kas tiks
; pasniegts. Līdzvērtīgs ApacheMaxClients direktīvai ar mpm_prefork.
; Ekvivalents PHP_FCGI_CHILDREN vides mainīgajam oriģinālajā PHP
; CGI. Tālāk norādītie noklusējumi ir balstīti uz serveri bez lieliem resursiem. Ne
; Aizmirstiet pielāgot PM.*, lai tas atbilstu jūsu vajadzībām.
; Piezīme: Izmanto, ja pm ir iestatīts uz 'statisku', 'dinamisku' vai 'pēc pieprasījuma'
; Piezīme: Šī vērtība ir obligāta.
pm.max_bērni = 300
; Startēšanas laikā izveidoto pakārtoto procesu skaits.
; Piezīme: Izmanto tikai tad, ja pm ir iestatīts uz "dinamisks"
; Noklusējuma vērtība: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
;p m.start_serveri = 50
; Vēlamais minimālais dīkstāves servera procesu skaits.
; Piezīme: Izmanto tikai tad, ja pm ir iestatīts uz "dinamisks"
; Piezīme: Obligāti, ja pm ir iestatīts uz "dinamisks"
;p m.min_rezerves_serveri = 20
; Vēlamais maksimālais dīkstāves servera procesu skaits.
; Piezīme: Izmanto tikai tad, ja pm ir iestatīts uz "dinamisks"
; Piezīme: Obligāti, ja pm ir iestatīts uz "dinamisks"
;pm.max_rezerves_serveri = 500
; Sekunžu skaits, pēc kura tiks nogalināts dīkstāves process.
; Piezīme: Izmanto tikai tad, ja pm ir iestatīts uz "pēc pieprasījuma"
; Noklusējuma vērtība: 10s
pm.process_idle_timeout = 10s;
; Pieprasījumu skaits, kas katram bērna procesam jāizpilda pirms atkārtotas nārsta.
; Tas var būt noderīgi, lai novērstu atmiņas noplūdes 3rd pušu bibliotēkās. Par
; Bezgalīga pieprasījumu apstrāde norāda '0'. Līdzvērtīgs PHP_FCGI_MAX_REQUESTS.
; Noklusējuma vērtība: 0
pm.max_pieprasījumi = 10240
Sarkanais lauks ir veids, kā to definēt un pēc tam iestatīt parametrus atbilstoši servera situācijai
Ja izmantojat statisko parametru pm.max_children, tas darbosies, pārējie nedarbosies. Dinamika ir pretēja.
2G atmiņa pm.max_bērni ir ieslēgti aptuveni 50, kas ir nepieciešams, lai pielāgotos faktiskajai situācijai.
Ja ir kādi trūkumi, es gribētu, lai jūs sniegtu savu viedokli, 502 risinājumi.
|