On 11/21/2005 06:52 PM, Jim Jagielski wrote:
> Thanks for the report: You said that you tested against
> 2.1.10-HEAD right?
>
> On Nov 21, 2005, at 10:25 AM, Hansjoerg Pehofer wrote:
>
> Hi,
>
> I briefly tried httpd-2.1.10 today and still see this.
> (Same httpd.conf, only changed ServerRoot to
> "/usr/local/apache2-2.1.10/")
>
> kind regards
> Hansjörg
>
> Hansjoerg Pehofer <[EMAIL PROTECTED]> writes:
>
>>>> Hi,
>>>>
>>>> I experienced Apache-2.1.7 (/w WorkerMPM on Solaris 9) connecting to
>>>> the
>>>> wrong backends when having configured more than one balancer cluster.
>>>> (see httpd.conf below)
>>>> ErrorLog shows some odd entries (marked in the example below) during
>>>> proxy_util.c's ap_proxy_determine_connection().
>>>>
>>>> I could work around this behaviour by changing line 1788 of
>>>> proxy_util.c
>>>>
>>>> - else if (!conn->hostname) {
>>>> + else if (!conn->hostname || strcmp(conn->hostname, uri- >hostname)
>>>> != 0) {
>>>>
>>>> This unlikely is a fix, however: I wonder if someone has seen this
>>>> behavior before and whether someone familiar with this modules can hint
>>>> me where to look deeper into this.
>>>>
>>>> kind regards
>>>> Hansjörg
I think the real problem happens if you have requests to different backends
(webapp-cluster, axkit-cluster) on one
shared keepalive connection to the reverse proxy.
So having something like
GET /library/q
and
GET /anything
served over the same keepalive connection between client and reverse proxy
should cause trouble, because of
if (!r->main) {
backend = (proxy_conn_rec *) ap_get_module_config(c->conn_config,
&proxy_http_module);
}
starting at line 1668 of mod_proxy_http.c which gets the previous backend
connection. Although the socket to the backend is closed for Reverse Proxy
Requests
in ap_proxy_determine_connection of line 1856 of proxy_util.c, the new
connection
gets created to the same address in line 2010 of proxy_util.c
(ap_proxy_connect_backend).
I have not found the time to search for a solution.
Just as a check to my theory can you disable keepalives and see if everything
works correctly
then?
[..cut..]
Regards
Rüdiger