I'm experimenting with using pythondirector for load-balancing several WebKit servers, but I get the following error messages in the Apache log:
[Fri Aug 29 23:59:34 2003] [error] [client 18.104.22.168] Premature end of script headers: /home/adc/adc/wwwroot/ADC
[Fri Aug 29 23:59:34 2003] [error] cannot scan servlet headers
[Fri Aug 29 23:59:34 2003] [error] error transacting with app server -- giving up
My setup is as follows:
I've had good success with pythondirector for load-balancing and failover with other TCP servers, so I don't understand what might be happening here. The pythondirector listens on port 8087, and ships whatever it receives to port 8086 on either of two machines (although even if I "load-balance" with just one backend machine, I get the same error). WebKit is dutifully listening on 8086, and mod_webkit is configured in httpd.conf with 8087 as the WK port.
So the request SHOULD be doing something like:
Browser -> requests from 80 or 443
mod_webkit -> marshals request, sends to 8087
pythondirector -> passes request through to a backend machine, port 8086
But Apache is logging the errors shown above. (The directory /home/adc/adc/wwwroot/ADC is the location /ADC in Apache, where the handler is set to webkit-handler.)
Any ideas or suggestions or other scenarios that raise the "cannot scan servlet headers" error would be appreciated.
In case you're interested or still reading, the reason I want to use a software load balancer is because our Cisco LocalDirectors are not helping us out much. They are set up to load-balance (and fail over) ports 80 and 443 from the outside world. Apache is running nicely on those ports, so the LocalDirectors never detect a problem. But occasionally WebKit gets a wedged thread and stops responding to requests. Unfortunately, Apache still responds (albeit with a 500 Server Error response), so the LocalDirector thinks that all is still right with the world.
David Hancock | email@example.com | 410-266-4384