Isso especifica a conexão, envio e leitura do PHP-CGIHora, 300 segundos são suficientes, então o meuServidorOs 504s raramente aparecemGatewayErro de tempo. O mais importante éPHP-FPM.ConferênciadePreparar, o que levará diretamente a 502 Bad Gateway e 504 Gateway Time-out.
Vamos dar uma olhada mais de perto em algumas partes importantes do php-fpm.confparâmetro:
O php-fpm.conf possui dois parâmetros cruciais, um é "max_children" e o outro é "request_terminate_timeout"
Tenho duas configurações com valores de "40" e "900", mas esse valor não é universal, precisa ser calculado por mim mesmo.
Veja como é calculado:
Se for seuServiçoInstrumentodesempenhoBom o suficiente, e os recursos de banda larga são suficientes, PHPRoteiroSe não houver loops ou bugs, você pode simplesmente definir o "request_terminate_timeout" para 0s. 0s significa que PHP-CGI roda o tempo todo sem limite de tempo. Se você não conseguir fazer isso, ou seja, seu PHP-CGI pode ter um bug, ou sua largura de banda não for suficiente ou outros motivos fizeram seu PHP-CGI fingir a morte, então é recomendado que você atribua um valor a "request_terminate_timeout", que pode ser definido de acordo com o desempenho do seu servidor. De modo geral, quanto melhor o desempenho, maior você pode ajustá-lo; 20 minutos a 30 minutos é bom. Como meus scripts PHP de servidor demoram bastante para rodar, alguns podem levar mais de 10 minutos, então configurei para 900 segundos para não causar o PHP-CGI morrer e aparecer o erro 502 Bad Gateway.
E como o valor de "max_children" é calculado? Em princípio, quanto maior, melhor, php-cgiProcessoSe houver mais, será processado rapidamente e haverá poucos pedidos na fila. max_children De modo geral, em circunstâncias normais, um servidor consome cerca de 20M de memória por php-CGI, então defino meu "max_children" para 40, 20M*40=800M, o que significa que todo PHP-CGI consumiu menos de 800M no pico, o que é menor que minha memória efetiva de 1Gb. E se meu "max_children" for ajustado menor, como 5-10, então o php-CGI será "muito cansativo", a velocidade de processamento também é muito lenta e o tempo de espera é maior. Se a solicitação não for processada por muito tempo, o erro de tempo de expiração do Gateway 504 aparecerá, e o php-CGI que está sendo processado encontrará um erro de gateway 502 Bad se apresentar problemas.
|