Curl,Apache和mod_wsgi连接重用

问题描述:

我在Apache上部署了一个mod_wsgi应用程序,并且有一个使用Curl的客户端程序。Curl,Apache和mod_wsgi连接重用

在用户端的CURL api上,我尝试重新使用连接,但是从wireshark查看连接,我发现对于每个HTTP请求/响应都会创建一个新连接。

在每个HTTP请求的结束时,将HTTP响应报头具有“连接:关闭”

这是一样的保持活动?我需要在Apache/Mod_wsgi端执行什么操作来启用连接重用?

您通常不需要对Apache做任何事情,因为默认情况下通常会保持活动连接的支持。查看Apache配置中的KeepAlive指令以确定它的设置。

最重要的是,为了保持活动连接的正常工作,WSGI应用程序必须在响应中设置内容长度,或者返回列表只包含一个字符串的响应列表。在后一种情况下,mod_wsgi会自动为响应添加一个内容长度。响应通常也需要是成功的响应,因为大多数错误响应会导致连接关闭,无论如何。

即使做了所有这些,问题是curl是否能够使用保持活动连接来获取多个URL。很明显,单独的卷曲调用将无法完成,所以你甚至会问这个问题,表明你正试图使用​​卷曲的特征。如果您使用链接到libcurl并使用其库的自定义客户端,并且所以您的意思是libcurl,则只有其他选项。

请注意,如果通过代理访问Apache,代理可能不会实现保持活动状态,因此停止整个机制的工作。

要提供更多信息,需要了解您如何使用卷曲。