Это указывает подключение, отправку и чтение PHP-CGIВремя, 300 секунд достаточно, значит, мойСервер504 появляются редкоВоротаОшибка тайм-аута. Самое главное —php-FPM.confизУстанавливать, что напрямую приведёт к 502 Bad Gateway и 504 Gateway Time-out.
Давайте подробнее рассмотрим некоторые важные части php-fpm.confпараметр:
У php-fpm.conf есть два ключевых параметра: один — «max_children», другой — «request_terminate_timeout».
У меня есть две настройки со значениями «40» и «900», но это значение не универсальное, его нужно вычислять самостоятельно.
Вот как это рассчитывается:
Если у тебяСлужбаИнструментпроизводительностьДостаточно хорошо, и ресурсов широкополосного доступа достаточно, PHPСценарийЕсли нет циклов или багов, можно просто установить «request_terminate_timeout» на 0. 0s означает, что PHP-CGI работает постоянно без ограничения по времени. Если вы не можете этого сделать, то есть в вашем PHP-CGI может быть определённый баг, или пропускная способность недостаточна, или другие причины из-за инсценировки смерти PHP-CGI, рекомендуется присвоить значение «request_terminate_timeout», которое можно настроить в зависимости от производительности вашего сервера. В целом, чем лучше исполнение, тем выше можно его установить — 20–30 минут — это нормально. Поскольку мои PHP-скрипты на сервере выполняются долго, некоторые могут занимать больше 10 минут, поэтому я установил 900 секунд, чтобы PHP-CGI не выходил из строя и не появлялась ошибка 502 Bad Gateway.
И как рассчитывается значение «max_children»? В принципе, чем больше, тем лучше — php-cgiПроцессЕсли их будет больше, они будут обработаны быстро, и в очереди будет мало запросов. max_children В целом, в обычных условиях сервер потребляет около 20 млн памяти на php-cgi, поэтому я устанавливаю «max_children» на 40, 20M*40=800M, что означает, что весь PHP-CGI потреблял менее 800 млн в пиковые часы, что меньше моей эффективной памяти в 1 Гб. А если мой «max_children» установлен меньше, например, 5-10, то php-cgi будет «очень утомительным», скорость обработки тоже очень медленной, а время ожидания дольше. Если запрос долгое время не обрабатывался, появится ошибка 504 Gateway Time-out, а php-cgi, который обрабатывается, столкнётся с ошибкой 502 Bad gateway, если возникнут проблемы.
|