I’ve been dealing with this for a while now trying to figure out why, when using my online accounting software, users sporadically get a StatusCodeException when sending requests to the server. I finally this week figured out what was going on; glassfish was dropping the connection or sending bad responses occasionally because it doesn’t behave in the was that the mod_proxy modules of these webservers expect it to.
Originally I was running lighttpd and I was thinking this might be a bug in lighttpd, so I eventually switched to apache. Once I was running apache I got a much more verbose error – instead of just a plan 500 or 502 status code I got a message. I googled that error message plus glassfish and found the solution.
I thought I’d share it here so that future searchers who are using lighttpd or apache will have more places to find the answer.
To fix the issue, add:
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
To your apache httpd.conf. I don’t know what the equivalent fix for lighttpd is, if there is any.
From this fix, it appears that glassfish is misbehaving in some way in relation to being behind a proxy, but I don’t what way that is and I’m just glad I fixed this mysterious problem!
If any of you readers have more information about this issue, please comment!