|
Nos últimos dias, houve muitos problemas com o Nginx 502 na internet, e achei que fosse um problema do Nginx como muita gente no começo.
A web usa a arquitetura nginx+php, e o site não está online há muito tempo, então a otimização é basicamente uma configuração inicial.
Verificando php-fpm.log encontrei avisos, que basicamente coincidiram com o horário em que o site foi suspenso. Vou começar por aqui.
Também procurei alguma documentação no começo, mas ainda havia um problema no dia seguinte. Depois, verifiquei o arquivo de configuração e traduzi (Baidu), e a base em inglês não estava boa. O módulo PM é semelhante ao módulo do Apache, que é estático e dinâmico.
Muitos dos ajustes mencionados na Internet são baseados principalmente em dinâmicas, mas não dizem como definir esse módulo. Portanto, todos deveriam olhar mais de perto para o arquivo de configuração ao usar dinâmica e estática pm = estático
; O número de processos filhos a serem criados quando o pm é definido como 'estático' e o
; Número máximo de processos filhos quando o PM está configurado para 'dinâmico' ou 'sob demanda'.
; Esse valor define o limite para o número de requisições simultâneas que serão
; Serviu. Equivalente à diretiva ApacheMaxClients com mpm_prefork.
; Equivalente à variável de ambiente PHP_FCGI_CHILDREN no PHP original
; CGI. Os padrões abaixo são baseados em um servidor com poucos recursos. Não
; Esqueça de ajustar o PM.* para atender às suas necessidades.
; Nota: Usado quando o pm está configurado para 'estático', 'dinâmico' ou 'sob demanda'
; Nota: Este valor é obrigatório.
pm.max_crianças = 300
; O número de processos filhos criados na inicialização.
; Nota: Usado apenas quando o pm está definido como 'dinâmico'
; Valor padrão: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
;p m.start_servers = 50
; O número mínimo desejado de processos de servidor ocioso.
; Nota: Usado apenas quando o pm está definido como 'dinâmico'
; Nota: Obrigatório quando o pm está configurado para 'dinâmico'
;p m.min_spare_servers = 20
; O número máximo desejado de processos de servidor ocioso.
; Nota: Usado apenas quando o pm está definido como 'dinâmico'
; Nota: Obrigatório quando o pm está configurado para 'dinâmico'
;pm.max_servidores_sobrantes = 500
; O número de segundos após os quais um processo ocioso será interrompido.
; Nota: Usado apenas quando o pm está configurado para 'ondemand'
; Valor padrão: 10s
pm.process_idle_timeout = 10s;
; O número de solicitações que cada processo filho deve executar antes de reaparecer.
; Isso pode ser útil para contornar vazamentos de memória em bibliotecas de terceiros. Para
; O processamento interminável de requisições especifica '0'. Equivalente a PHP_FCGI_MAX_REQUESTS.
; Valor padrão: 0
pm.max_solicitações = 10240
O campo vermelho é a forma de defini-lo e então definir os parâmetros de acordo com a situação do servidor
Se você usar o parâmetro estático pm.max_children, ele vai funcionar, o resto não. A dinâmica é o oposto.
A memória 2G pm.max_children está ligada cerca de 50, o que é necessário para ajustar conforme a situação real.
Se houver alguma falha, gostaria que você desse suas opiniões, soluções 502.
|