Apache 代理超时

roa*_*cha 24 proxy apache-2.2

我试图了解我们的 Apache 2.2 error_log 中的以下消息发生了什么:

Wed May 18 21:03:29 2011] [error] [client 172.20.10.10] (70007)The timeout specified has expired: proxy: error reading status line from remote server super-load1-ga.test.com, referer: https://tester2.test.com/boom/ga/inside.as

我们正在使用 mod_proxy 运行 Apache 2.2。这个 Apache 是否超时了与其在 httpd.conf 中的 5 分钟超时值相关的请求?(意味着它在 5 分钟内没有收到来自远程服务器的响应。)或者这只是来自远程服务器的响应,说它无法处理连接?

在我看到这个错误的时候,Apache 很快用完了它的 MaxClients。

代理条目的快速示例:

ProxyPass /boom/ga https://super-load1-ga.test.com
ProxyPassReverse /boom/ga https://super-load1-ga.test.com
Run Code Online (Sandbox Code Playgroud)

小智 35

您在ProxyPass指令中增加超时:

ProxyPass /boom/ga https://super-load1-ga.test.com connectiontimeout=300 timeout=300
Run Code Online (Sandbox Code Playgroud)

超时值以秒为单位

  • 如果您尚未定义 ProxyPass 超时参数,则将使用您的全局“Timeout”值。请参阅 http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxytimeout 和 http://httpd。 apache.org/docs/2.2/mod/core.html#timeout (8认同)

Phi*_*lds 5

听起来您的服务器https://super-load1-ga.example.com响应时间过长。

在这种情况下,如果它只是坐在那里,那么 Apache 进程将等待它。该进程基本上被阻止,即不能做任何其他事情。如果您没有足够快地超时,您将耗尽 Apache 进程并点击 MaxClients,这似乎都有意义。

您应该在 super-load1-ga.test.com 站点上登录以查看请求需要多长时间,它们肯定需要一段时间。

您可能会缩短 ProxyPass 连接的超时时间

http://httpd.apache.org/docs/current/mod/mod_proxy.html#workers