适合 Ajax 的良好系统,每隔 N 秒向 PHP 发送一次 keepalive 消息,而不会导致服务器过载

适合 Ajax 的良好系统,每隔 N 秒向 PHP 发送一次 keepalive 消息,而不会导致服务器过载

我有一个网站,其中 Javascript 每 5 秒向 CentOS 服务器上的 PHP 脚本发送一次 HTTP POST Ajax 请求。如果我检查netstat,我会看到很多处于TIME_WAIT状态的连接(大部分在 6 到 9 之间)。这只是针对一个用户。但该网站每 5 秒应该会从浏览网站的用户那里收到数百甚至数千个这样的请求。然后 PHP 脚本从数据库获取一些数据并将其返回给用户。所以我想知道我当前的解决方案是否好/是否不占用服务器的资源。

我已经研究过更改服务器上的网络设置,例如通常的net.ipv4.tcp_fin_timeout

net.ipv4.tcp_tw_recycle

net.ipv4.tcp_tw_reuse

但第一个与可以有多少个 TIME_WAIT 连接无关。我宁愿不更改这些设置,因为它是网站等的 Web 服务器,而不是仅用于 keepalive 的专用服务器。

我想知道 Ajax 是否可以使用 UDP 发送 HTTP POST 以摆脱 TCP 特定的开销,但这是不可能的。

这让我不禁想问:我还能做些什么来尽可能减少发送 keepalive 所消耗的资源?有没有轻量级的服务器服务可以处理这类请求?

相关内容