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,代理可能不会实现保持活动状态,因此停止整个机制的工作。
要提供更多信息,需要了解您如何使用卷曲。