|
Negli ultimi giorni ci sono stati molti problemi con Nginx 502 sul web, e all'inizio pensavo fosse un problema di Nginx come molte persone.
Il web utilizza l'architettura nginx+php, e il sito non è più online da molto tempo, quindi l'ottimizzazione è fondamentalmente solo una configurazione iniziale.
Controllando php-fpm.log trovato avvertimenti, che praticamente coincidevano con il momento in cui il sito è stato sospeso. Comincio da qui.
All'inizio ho anche cercato della documentazione, ma il giorno dopo c'era comunque un problema. Più tardi, ho controllato il file di configurazione e l'ho tradotto (Baidu), e la base inglese non era buona. Il modulo PM è simile al modulo di Apache, che è statico e dinamico.
Molti degli aggiustamenti menzionati su Internet si basano principalmente sulla dinamica, ma non specificano come definire questo modulo. Quindi tutti dovrebbero dare un'occhiata più attenta al file di configurazione quando si usa dinamico e statico pm = statico
; Il numero di processi figli da creare quando pm è impostato su 'statico' e il
; Numero massimo di processi figli quando il PM è impostato su 'dinamico' o 'on-demand'.
; Questo valore stabilisce il limite al numero di richieste simultanee che saranno
; servito. Equivalente alla direttiva ApacheMaxClients con mpm_prefork.
; Equivalente alla variabile di ambiente PHP_FCGI_CHILDREN nel PHP originale
; CGI. I parametri predefiniti qui sotto si basano su un server con poche risorse. Non
; Dimentica di modificare PM.* per adattarlo alle tue esigenze.
; Nota: Usato quando il pm è impostato su 'statico', 'dinamico' o 'su richiesta'
; Nota: Questo valore è obbligatorio.
pm.max_figli = 300
; Il numero di processi figli creati all'avvio.
; Nota: Usato solo quando pm è impostato su 'dinamico'
; Valore predefinito: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
;p m.start_servers = 50
; Il numero minimo desiderato di processi server inattivi.
; Nota: Usato solo quando pm è impostato su 'dinamico'
; Nota: Obbligatorio quando il pm è impostato su 'dinamico'
;p m.min_spare_servers = 20
; Il numero massimo desiderato di processi server inattivi.
; Nota: Usato solo quando pm è impostato su 'dinamico'
; Nota: Obbligatorio quando il pm è impostato su 'dinamico'
;pm.max_server_sparring = 500
; Il numero di secondi dopo i quali un processo inattivo verrà interrotto.
; Nota: Usato solo quando il PM è impostato su 'on-demand'
; Valore predefinito: 10 secondi
pm.process_idle_timeout = 10s;
; Il numero di richieste che ogni processo figlio dovrebbe eseguire prima di rinascere.
; Questo può essere utile per aggirare le perdite di memoria nelle librerie di terze parti. Per
; L'elaborazione infinita delle richieste specifica '0'. Equivalente a PHP_FCGI_MAX_REQUESTS.
; Valore predefinito: 0
pm.max_richieste = 10240
Il campo rosso è il modo per definirlo, e poi impostare i parametri in base alla situazione del server
Se usi il parametro statico pm.max_children, funzionerà, il resto no. Le dinamiche sono l'opposto.
La memoria 2G pm.max_children è attiva circa 50, necessario per adattarsi alla situazione reale.
Se c'è qualche mancanza, vorrei che dessi le vostre opinioni, soluzioni 502.
|