|
En los últimos días, ha habido muchos problemas con Nginx 502 en la web, y al principio pensé que era un problema de Nginx, como mucha gente.
La web utiliza la arquitectura nginx+php, y la web no ha estado online en mucho tiempo, así que la optimización es básicamente una configuración inicial.
Al revisar php-fpm.log encontré advertencias, que básicamente coincidían con el momento en que la web fue suspendida. Empiezo por aquí.
También busqué algo de documentación al principio, pero al día siguiente seguía habiendo un problema. Más tarde, revisé el archivo de configuración y lo traduje (Baidu), y la base en inglés no era buena. El módulo PM es similar al módulo de Apache, que es estático y dinámico.
Muchos de los ajustes mencionados en Internet se basan principalmente en dinámicas, pero no especifican cómo definir este módulo. Así que todos deberían fijarse más en el archivo de configuración cuando se usa dinámico y estático PM = estático
; El número de procesos hijos que deben crearse cuando pm se establece en 'estático' y el
; Número máximo de procesos hijos cuando PM está configurado en 'dinámico' o 'bajo demanda'.
; Este valor establece el límite del número de solicitudes simultáneas que serán
; Servido. Equivalente a la directiva ApacheMaxClients con mpm_prefork.
; Equivalente a la variable de entorno PHP_FCGI_CHILDREN en el PHP original
; CGI. Los siguientes valores por defecto se basan en un servidor con pocos recursos. No
; Olvida ajustar PM.* para adaptarlo a tus necesidades.
; Nota: Se usa cuando pm está configurado en 'estático', 'dinámico' o 'bajo demanda'
; Nota: Este valor es obligatorio.
pm.max_hijos = 300
; El número de procesos hijos creados al iniciar.
; Nota: Se usa solo cuando pm está configurado en 'dinámico'
; Valor por defecto: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
;p m.start_servers = 50
; El número mínimo deseado de procesos de servidor inactivos.
; Nota: Se usa solo cuando pm está configurado en 'dinámico'
; Nota: Obligatorio cuando PM está configurado en 'dinámico'
;p m.min_spare_servers = 20
; El número máximo deseado de procesos de servidor inactivos.
; Nota: Se usa solo cuando pm está configurado en 'dinámico'
; Nota: Obligatorio cuando PM está configurado en 'dinámico'
;pm.max_servidores_de reserva = 500
; El número de segundos tras los cuales un proceso inactivo se eliminará.
; Nota: Se usa solo cuando el mensaje privado está configurado en 'bajo demanda'
; Valor por defecto: 10s
pm.process_idle_timeout = 10s;
; El número de solicitudes que cada proceso hijo debe ejecutar antes de reaparecer.
; Esto puede ser útil para solucionar fugas de memoria en bibliotecas de terceros. Para
; El procesamiento interminable de solicitudes especifica '0'. Equivalente a PHP_FCGI_MAX_REQUESTS.
; Valor por defecto: 0
pm.max_solicitudes = 10240
El campo rojo es la forma de definirlo y luego establecer los parámetros según la situación del servidor
Si usas el parámetro estático pm.max_children, funcionará, el resto no. La dinámica es la opuesta.
La memoria 2G pm.max_children tiene unos 50 activados, lo cual es necesario para ajustarlo según la situación real.
Si hay alguna carencia, me gustaría que dierais vuestras opiniones, soluciones 502.
|