使用Curl、Apache和mod_wsgi重用连接

使用Curl、Apache和mod_wsgi重用连接,apache,connection,mod-wsgi,reusability,Apache,Connection,Mod Wsgi,Reusability,我在Apache上部署了一个mod_wsgi应用程序,并且有一个使用Curl的客户端程序 在用户端的curlapi上,我尝试重用连接,但是查看wireshark的连接,我发现对于每个HTTP请求/响应,都会建立一个新的连接 在每个HTTP请求的末尾,HTTP响应头都有“Connection:Close” 这和保持活力一样吗?在Apache/Mod_wsgi端,我需要做什么才能启用连接重用 您通常不需要对Apache执行任何操作,因为默认情况下,对保持活动连接的支持通常处于启用状态。查看Apach

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

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

在每个HTTP请求的末尾,HTTP响应头都有“Connection:Close”


这和保持活力一样吗?在Apache/Mod_wsgi端,我需要做什么才能启用连接重用

您通常不需要对Apache执行任何操作,因为默认情况下,对保持活动连接的支持通常处于启用状态。查看Apache配置中的KeepAlive指令,了解它的设置

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

即使完成了所有这些,问题还是在于curl获取多个url的能力是否利用了keep-alive连接。显然,单独调用curl是不可能的,因此,即使你问这个问题,也表明你正在尝试使用curl的这个特性。唯一的另一种选择是,如果您使用链接到libcurl的自定义客户端并使用其库,那么您指的是libcurl

请注意,如果通过代理访问Apache,代理可能无法实现keep alive,因此会停止整个机制的工作


要提供更多信息,需要了解您是如何使用curl的。

您通常不需要对Apache执行任何操作,因为对保持活动连接的支持在默认情况下通常处于启用状态。查看Apache配置中的KeepAlive指令,了解它的设置

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

即使完成了所有这些,问题还是在于curl获取多个url的能力是否利用了keep-alive连接。显然,单独调用curl是不可能的,因此,即使你问这个问题,也表明你正在尝试使用curl的这个特性。唯一的另一种选择是,如果您使用链接到libcurl的自定义客户端并使用其库,那么您指的是libcurl

请注意,如果通过代理访问Apache,代理可能无法实现keep alive,因此会停止整个机制的工作

要提供更多信息,需要了解如何使用curl