ec2 实例总是在大约 60 秒内超时?

ec2 实例总是在大约 60 秒内超时?

为什么我访问 http 或 https 时,ec2 实例总是在大约 60 秒内超时?大约 60 秒后总是返回:

网络错误(tcp_error)

发生通信错误:“操作超时”Web 服务器可能已关闭、太忙或遇到其他问题,导致无法响应请求。您可以稍后再试。

如需帮助,请联系您的网络支持团队。

有时还会返回:

网关超时

网关未收到来自更新服务器或应用程序的及时响应。

我使用 apache web 服务器和 PHP,并设置了最大超时时间。我在 EC2 中不使用 ELB/负载均衡器,也从未创建过任何 ELB。我尝试在互联网上寻找解决方案,但总是发现 ELB 设置。

答案1

在您的 apache/vhost 配置中,您需要将 Timeout 指令设置为所需的超时值。

https://httpd.apache.org/docs/2.4/mod/core.html#timeout

描述:服务器在请求失败之前等待某些事件的时间量
句法:超时秒数
默认:超时 60
语境:服务器配置,虚拟主机

答案2

根据本文我只需要运行下面的命令

/sbin/sysctl -w net.ipv4.tcp_keepalive_time=200 net.ipv4.tcp_keepalive_intvl=200 net.ipv4.tcp_keepalive_probes=5

我尝试过并且没有工作,但在我编辑/etc/sysctl.conf并添加以下代码后:

net.ipv4.tcp_keepalive_time=200
net.ipv4.tcp_keepalive_intvl=200
net.ipv4.tcp_keepalive_probes=5

然后我重新启动了我的实例,现在超时时间更长了。

相关内容