我发现了几个类似的问题:
- APACHE,PHP服务器随机返回空响应
- https://serverfault.com/questions/66662/apache-gives-empty-reply
- 和其他
然而,这些似乎无助于找到原因。我可以在重新加载特定页面时复制行为约20次。
- 运行当前的apache2(=2.4.28-3+deb10u4(。我试图禁用opcache,删除
MaxRequestsPerChild
,但没有效果 - Apache日志未显示任何错误。该请求甚至没有被记录
USE_ZEND_ALLOC=0
似乎没有任何效果,问题依然存在- 我试着安装
mod_forensic
,这表明请求来了。然后没有错误或完成的请求被记录下来 - 容器在Kubernetes中运行,我无法在本地复制直接使用Docker机器运行的问题,这就是为什么我认为这可能是由一些内存设置引起的。然而,我找不到可能是什么原因导致的,因为没有一条错误消息
你能想到发生这种情况的原因吗?
第1版:
我试图设置要跟踪的日志级别:
https://gist.github.com/knyttl/861e8a0fe5651408df37cd5c3874946b
请求得到处理,然后您可以看到:
[Tue Oct 20 08:37:55.825454 2020] [core:trace4] [pid 1] mpm_common.c(536): mpm child 388 (gen 2/slot 4) exited
没有错误,也没有响应。
第2版:
我更新到php7.4,但问题仍然存在。
我终于找到了它:
进程被主机的OOM杀手悄无声息地杀死:
[4019392.626796] Memory cgroup out of memory: Kill process 4178127 (apache2) score 1137 or sacrifice child
[4019392.636520] Killed process 4178127 (apache2) total-vm:143960kB, anon-rss:22856kB, file-rss:10472kB, shmem-rss:28228kB
这从未记录在容器中,因此很难找到。
为什么不使用Jorge的答案?
通过添加到/etc/apache2/envvars:最终解决
导出USE_ZEND_ALLOC=0
https://serverfault.com/a/66759