gpt4 book ai didi

nginx - 当用户中止请求时,如何让 PHP-FPM 进程终止? (Nginx)

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:39:25 25 4
gpt4 key购买 nike

我知道 Nginx 与 PHP-FPM 进程无关,但我更希望 PHP-FPM 进程在用户中止时终止,这样它就不会继续做不必要的事情或浪费资源。对于 PHP-FPM/Nginx,无论用户是否中止,trigger_error 都会发生:

<?php

sleep(30);
trigger_error('Still happened?');

?>

我如何为 PHP-FPM 执行用户中止操作? (如果可能的话)

最佳答案

这不是由 php-fpm 实现的,更多信息 here .

设置 ignore_user_abort(FALSE) 仅在 PHP 通过套接字发送数据时有效,而不是在它忙于计算响应时有效。

理想情况下,它应该在 php-fpm 中实现,但我认为这不会很容易,因为 PHP 大多是单线程的。

在紧急情况下,您可以终止连接中断的所有 php-fpm 进程。假设你有 php-fpm 监听 localhost:9000,这会起作用:

netstat -ntp | grep 127.0.0.1:9000 | grep php-fpm | grep CLOSE_WAIT |\
awk ' { print $7; } ' | cut -d/ -f1 | while read pid; do
echo "Killing php-fpm/$pid because client has closed connection"
kill $pid
done

关于nginx - 当用户中止请求时,如何让 PHP-FPM 进程终止? (Nginx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10493001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com