连接重用与Curl,Apache和mod_wsgi

时间:2009-06-29 05:05:18

标签: apache connection mod-wsgi reusability

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

在用户端的CURL api上,我尝试重用连接,但是查看wireshark的连接,我看到每个HTTP请求/响应都会建立一个新的连接。

在每个HTTP请求结束时,HTTP响应标头都有“Connection:Close”

这和Keep-Alive一样吗?我需要在Apache / Mod_wsgi端做什么才能重新连接?

1 个答案:

答案 0 :(得分:3)

您通常不需要对Apache执行任何操作,因为默认情况下通常会启用保持连接的支持。查看Apache配置中的KeepAlive指令,以确定它的设置。

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

即使完成了所有这些,问题在于curl获取多个URL的能力是否仍然使用保持活动连接。显然单独调用卷曲是不可能的,因此您甚至会问这个问题表明您正在尝试使用卷曲的这一特性。如果您使用链接到libcurl的自定义客户端并使用其库,那么只有其他选择,因此您的意思是libcurl。

请注意,如果通过代理访问Apache,代理可能无法实现保持活动状态,从而阻止整个机制工作。

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