4

我们希望对我们在 C++ Apache 2.2 模块(在 CentOS 5 上)中提供的连接进行更细粒度的控制。

其中一个连接需要在多个请求中保持活动状态,因此我们将“KeepAlive”设置为“On”并设置较短的保持活动时间。

但是对于每一个这样的连接,我们都有来自浏览器的更多连接,我们不需要留下这些连接,而是希望在单个请求后强制它们关闭。

其中一些连接在不同的端口上(因此我们可以通过端口区分它们,因为可以为每个虚拟主机设置 KeepAlive)和一些请求不同的 URL(因此我们可以从路径和参数中看出我们不想离开他们在后面)。

同样对于我们确实想要保持活力的那个,我们知道在某个请求之后我们也想关闭它。

但到目前为止,我们发现“取消”保持活动的唯一方法是向客户端发送礼貌的“连接:关闭”标头。如果客户表现不佳或恶意,那么他们可以保持开放并浪费我们的资源。

有没有办法告诉 Apache 从服务器端关闭连接?该文档建议不要对套接字进行简单的 close(2) 调用,因为 Apache 需要在完成之前进行一些清理。但是是否有一些 API 或技巧可以动态地“覆盖”静态的“KeepAlive On”配置(并说服 Apache 调用 close(2))?

谢谢。

4

1 回答 1

1

尝试设置 c->aborted,然后 apache 将在其有序关闭期间在正确的时间关闭套接字。

于 2012-07-01T01:11:18.057 回答