简体   繁体   中英

Browser/jQuery Proxy Error

We have a web app that has a built-in search feature that our users can perform complex searches. Here's our software stack:

  • Server-side is Spring MVC using Struts/JSPs for view
  • Client-side JS library is pure jQuery and jqGrid for tables
  • Web app is packaged as a WAR and deployed to a Tomcat 6.0.35 container
  • Apache 2.2.22 Web Server is a reverse proxy and serves our JS (I know this is not really necessary but this is how the project was handed to us, not our design!)
  • Backend is built & maintained by another team, but uses SOLR and Oracle for the text search feature described above

When users perform "broad" queries (queries that aren't targeted well and require SOLR to really chug) after about 30 seconds they get an error message on the screen that simply reads " Proxy Error ". That error message is displayed in lieu of the normal jqGrid table that displays the search results.

I have done a full text search of every file in our project and cannot find this phrase, nor " Proxy ", nor " proxy ".

90% of the time these mysterious and elusive "Proxy Error"s are happening in IE8 and IE9, although occasionally they have been spotted in FireFox.

Since that string (or anything similar to it) is not found in our codebase, it has to be coming from one of these 3rd party dependencies, and just getting sent back to the user in the form of search results.

Has anybody ever seen any of these technologies behave like this before? Could this be something the browsers are injecting into the DOM somehow? I'm stupified here and running out of time.

The 50x's are absolutely coming from Apache. Check httpd.conf - you probably have timeouts defined like Timeout=blah . If this property is defined, then when Apache forwards requests on to Tomcat, if Tomcat takes long than blah to respond Apache fails fast, and returns a 50x to the client, injecting "Proxy Error" into the response body.

Simply remove this timeout setting, which causes modern versions of Apache to wait indefinitely. At least that way you won't get Proxy Errors, although there's no guarantee Tomcat will returns anything to Apache.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM