Docker中运行的Apache/PHP7.3随机断开连接,响应为空



我发现了几个类似的问题:

  • APACHE,PHP服务器随机返回空响应
  • https://serverfault.com/questions/66662/apache-gives-empty-reply
  • 和其他

然而,这些似乎无助于找到原因。我可以在重新加载特定页面时复制行为约20次。

  1. 运行当前的apache2(=2.4.28-3+deb10u4(。我试图禁用opcache,删除MaxRequestsPerChild,但没有效果
  2. Apache日志未显示任何错误。该请求甚至没有被记录
  3. USE_ZEND_ALLOC=0似乎没有任何效果,问题依然存在
  4. 我试着安装mod_forensic,这表明请求来了。然后没有错误或完成的请求被记录下来
  5. 容器在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

相关内容

  • 没有找到相关文章

最新更新