<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>502 Proxy Error</title> </head><body> <h1>Proxy Error</h1> <p>The proxy server received an invalid response from an upstream server. The proxy server could not handle the request <em><a href="/cometdServer/connect">POST /cometdServer/connect</a></em>.<p> Reason: <strong>Error reading from remote server</strong></p></p> </body></html>
cometd://0.0.0.0:9099/mybroadcastchannel
ProxyPass /cometdServer http://camelserver:9099/cometd ProxyPassReverse /cometdServer http://camelserver:9099/cometd
通常,在CometD 长轮询/Bayeux服务器前面部署Apache为代理服务器就不是一个好主意。这是由于Apache是“一个请求对应一个线程"模型-这在扩展这种方案的时候带来了很多问题。
更详细的说明在这儿:
(假若使用默认配置,)那么在Jetty/Camel服务器超时之前,Apache代理服务器就产生了超时问题。默认情况下,Apache的超时设置为2分钟(在httpd.conf的全局定义里),而Camel/CometD这边,默认的超时设置为4分钟(240000毫秒) 在某中条件下-如果CometD终端节点保持连接超过了2分钟,这将引起Apache代理服务器超时,然后代理服务器断开客户端的CometD连接(它能保持连接打开的时间长度似乎是可变的,不过通常都比这个时间短很多)增加Apache代理服务器的超时时间到超过4分钟。或者全局的,或者针对每个重定向配置(在proxy.conf中)
ProxyPass /cometdServer http://camelserver:9099/cometd timeout=250 ProxyPassReverse /cometdServer http://camelserver:9099/cometd timeout=250
cometd://0.0.0.0:9099/mybroadcastchannel?timeout=110000
对于监测浏览器与服务器之间的网络流量非常有用——使你能很容易的看到每个HTTP交互的细节(在‘Network’ 标签)。这里的特别用法是看到时间——你可以看到请求失败是发生在2分钟的时间点。
启用apache 的mod_status 对于确认问题与线程无关非常有用(正如上文关于Apache/CometD的著名争论所提到的)
这使你能看到当前的工作线程正在Apache上做着什么。如何启用做到这一点的说明在这里:
http://httpd.apache.org/docs/2.2/mod/mod_status.html 本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务