gpt4 book ai didi

python - Apache 套接字没有关闭?

转载 作者:太空狗 更新时间:2023-10-30 02:00:53 25 4
gpt4 key购买 nike

我有一个使用 CherryPy 编写的 Web 应用程序,它在 127.0.0.1:4321 上本地运行。我们使用 mod-rewrite 和 mod-proxy 让 Apache 充当反向代理; Apache 还处理我们的 SSL 加密,并可能最终用于传输我们所有的静态内容。

这一切都适用于小型工作负载。但是,我最近使用 urllib2 编写了一个压力测试脚本,该脚本可以模拟 100 个客户端的工作负载。一段时间后,每个客户端都收到来自 Apache 的 503 错误,表明 Apache 无法连接到 127.0.0.1:4321。 CherryPy 运行正常,但我的 Apache 错误日志显示如下行:

[Thu Oct 02 12:55:44 2008] [error] (OS 10048)通常只允许每个套接字地址(协议(protocol)/网络地址/端口)使用一次。 : 代理: HTTP: 尝试连接到 127.0.0.1:4321 (*) 失败

谷歌搜索此错误表明 Apache 可能已用完套接字文件描述符。因为我只有 100 个客户端在运行,这意味着连接没有关闭,无论是在我的 urllib2 连接和 Apache 之间(我肯定是在调用 .close() urlopen 的返回值),或介于 Apache 和 CherryPy 之间。

我已经确认我的 urllib2 请求正在发送 HTTP Connection: close header ,尽管 Apache 配置了 KeepAlive On 如果是很重要。

以防万一,我使用的是 Python 2.5、Apache 2.2、CherryPy 3.0.3,并且服务器在 Windows Server 2003 上运行。

那么我的下一步是什么来阻止这个问题?

最佳答案

SetEnv proxy-nokeepalive 1 可能会立即告诉您问题是否出在 Apache 和 CP 之间。查看mod_proxy docs了解更多信息。

关于python - Apache 套接字没有关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/163603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com