【问题标题】:Browser/jQuery Proxy Error浏览器/jQuery 代理错误
【发布时间】:2012-07-18 12:50:08
【问题描述】:

我们的网络应用程序具有内置搜索功能,我们的用户可以执行复杂的搜索。这是我们的软件堆栈:

  • 服务器端是 Spring MVC,使用 Struts/JSP 进行查看
  • 客户端 JS 库是用于表格的纯 jQuery 和 jqGrid
  • Web 应用程序打包为 WAR 并部署到 Tomcat 6.0.35 容器中
  • Apache 2.2.22 Web Server 是一个反向代理,为我们的 JS 提供服务(我知道这不是必需的,但这是项目交给我们的方式,而不是我们的设计!)
  • 后端由另一个团队构建和维护,但使用 SOLR 和 Oracle 实现上述文本搜索功能

当用户在大约 30 秒后执行“广泛”查询(目标不明确且需要 SOLR 真正突突的查询)时,他们会在屏幕上收到一条错误消息,内容为“代理错误 ”。该错误消息将代替显示搜索结果的普通 jqGrid 表显示。

我已经对我们项目中的每个文件进行了全文搜索,但找不到这个短语、“Proxy”和“proxy”。

90% 的时间这些神秘且难以捉摸的“代理错误”发生在 IE8 和 IE9 中,尽管偶尔会在 FireFox 中发现它们。

由于在我们的代码库中找不到该字符串(或任何类似的内容),因此它必须来自这些第 3 方依赖项之一,并且只是以搜索结果的形式发回给用户。

以前有没有人见过这些技术的行为是这样的?这可能是浏览器以某种方式注入 DOM 的东西吗?我在这里傻眼了,没时间了。

【问题讨论】:

  • 谢谢 ~Wolfram (+1) - 这是一个有趣的前景,我一定会检查一下,但这如何解释 IE8 和 IE9 对这个错误的特殊亲和力(就像我说的 90%时间或更多时间,这两个浏览器发生这种情况,同时,对于相同的搜索,FF 和 Chrome 非常好)。
  • 不知道,但我在搜索这个时遇到了很多502(不是504)问题。可以帮助您调查。

标签: java javascript jquery spring-mvc solr


【解决方案1】:

50x 绝对来自 Apache。检查httpd.conf - 您可能定义了类似Timeout=blah 的超时。如果定义了这个属性,那么当 Apache 将请求转发到 Tomcat 时,如果 Tomcat 响应时间超过blah,则 Apache 快速失败,并向客户端返回 50x,将“代理错误”注入响应正文。

只需删除此超时设置,这会导致现代版本的 Apache 无限期等待。至少这样你不会得到代理错误,虽然不能保证 Tomcat 会返回任何东西给 Apache。

【讨论】:

    猜你喜欢
    • 2011-12-28
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多