Запуск nginx 1.9. */PHP 7.0. * (но точно такое же поведение в 5.6. * также)
Попытка изящно прекратить компиляцию PHP-FPM/nginx для закрытия node во время обслуживания. Для этого я отправляю SIGQUIT в php-fpm, который должен обеспечивать изящное завершение работы.
Чтобы проверить это, я сделал немой script
<?php sleep(5); echo 'done';
Протестировано локально с помощью следующего curl
curl -I x.x.x.x:8080
Что обычно производит вывод:
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 12 Apr 2016 04:48:00 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
Желательно: в середине любого запроса на рейс, когда запрашивается изящное завершение, текущие запросы должны заканчиваться, но любые дополнительные запросы должны быть неудачными.
К сожалению, когда я пытаюсь вызвать это поведение, отправив SIGQUIT (http://manpages.ubuntu.com/manpages/precise/man8/php5-fpm.8.html) в главный процесс PHP-FPM:
kill -s SIGQUIT $FPMPID
Соединение немедленно падает, в результате появляется ngnix 502
HTTP/1.1 502 Bad Gateway
Server: nginx
Date: Tue, 12 Apr 2016 04:48:07 GMT
Content-Type: text/html
Content-Length: 166
Connection: close
Любые советы? Я хотел бы сделать этот кусок системы максимально плавным. Спасибо!