mod_proxy 出现错误 20014

mod_proxy 出现错误 20014

我遇到了一个奇怪的情况。我需要从 perl 脚本中调用 cgi-bin 中的程序。当我尝试使用 执行此操作时exec($program),我得到了

(20014)Internal error: proxy: error reading status line from remote server
proxy: Error reading from remote server returned by ...

长话短说...我呼吁mapservhttp://mapserver.org) 作为 cgi 程序来自OpenLayers(http://openlayers.org)。通常,我的网站由 Perl Dancer 提供服务,但 mapserver 调用是直接http://server/cgi-bin/mapserv从 JavaScript 进行的。Dancer 网站由StarmanApache2 代理前端提供服务。它看起来是这样的

[browser] -> http://server/app -> [apache2] -> proxy port 5000 -> Starman
    |
    |
    +-> http://server/cgi-bin/mapserv -> [apache2] -> cgi-bin -> mapserv

这就是我想要实现的目标

[browser] -> http://server/app -> [apache2] -> proxy port 5000 -> Starman
                                                                    |
                                                                    |
                               mapserv <-- cgi-bin <-- [apache2] <--+

我看到了这个问题:20014 错误,但建议的解决方案没有帮助。

还有其他提示吗?

答案1

我不确定您使用的是哪个版本的 Apache。我在使用 Apache 2.2.22 时也遇到过类似的问题,Apache 的文档建议如下:

代理初始未池化

如果设置了此变量,则在客户端连接是初始连接的情况下,不会重用任何池连接。这可以避免由于竞争条件而导致的“代理:从远程服务器读取状态行时出错”错误消息,即在代理检查连接之后,代理发送的数据到达后端之前,后端服务器关闭了池连接。必须记住,设置此变量会降低性能,尤其是对于 HTTP/1.0 客户端。

但我不确定这是否能解决您的问题。

相关内容