httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hansjoerg Pehofer <hansjoerg.peho...@uibk.ac.at>
Subject httpd-2.1.7 Connection-pooling Problem w/ ReverseProxy, Loadbalancer
Date Mon, 19 Sep 2005 13:53:11 GMT
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

-- Example ErrorLog:

     [Wed Sep 14 14:33:27 2005] [debug] mod_proxy_balancer.c(41): proxy: BALANCER: canonicalising
URL //webapp-cluster/gopublic/content/bidok/library
     [Wed Sep 14 14:33:27 2005] [debug] mod_proxy_balancer.c(524): proxy: BALANCER (balancer://webapp-cluster)
worker (http://192.168.15.5) rewritten to http://192.168.15.5/gopublic/content/bidok/library?authors=1
     [Wed Sep 14 14:33:27 2005] [debug] mod_proxy.c(726): Running scheme balancer handler
(attempt 0)
     [Wed Sep 14 14:33:27 2005] [debug] mod_proxy_http.c(1601): proxy: HTTP: serving URL http://192.168.15.5/gopublic/content/bidok/library?authors=1
-->  [Wed Sep 14 14:33:27 2005] [debug] proxy_util.c(1764): proxy: connecting http://192.168.15.5/gopublic/content/bidok/library?authors=1
to 192.168.15.5:80
-->  [Wed Sep 14 14:33:27 2005] [debug] proxy_util.c(1860): proxy: connected /gopublic/content/bidok/library?authors=1
to 192.168.15.3:80
-->  [Wed Sep 14 14:33:27 2005] [debug] proxy_util.c(1952): proxy: HTTP: fam 2 socket created
to connect to 192.168.15.5
-->  [Wed Sep 14 14:33:27 2005] [debug] proxy_util.c(2045): proxy: HTTP: connection complete
to 192.168.15.3:80 (192.168.15.3)
     [Wed Sep 14 14:33:27 2005] [debug] mod_proxy_http.c(1383): proxy: start body send
     [Wed Sep 14 14:33:27 2005] [debug] mod_headers.c(612): headers: ap_headers_output_filter()
     [Wed Sep 14 14:33:27 2005] [debug] mod_proxy_http.c(1470): proxy: end body send
     [Wed Sep 14 14:33:27 2005] [debug] proxy_util.c(1722): proxy: HTTP: has released connection
for (192.168.15.3)
     [Wed Sep 14 14:33:27 2005] [debug] mod_proxy_balancer.c(552): proxy_balancer_post_request
for (balancer://webapp-cluster)

-- Example httpd.conf:

ServerRoot "/usr/local/apache2-2.1.7/"
TimeOut 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
    StartServers         2
    MaxClients          50
    MinSpareThreads     25
    MaxSpareThreads     50
    ThreadsPerChild     25

Listen 80
User nobody
Group nobody

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule rewrite_module modules/mod_rewrite.so

DocumentRoot "/www"

ProxyRequests Off
ProxyVia Off
EnableMMAP off

ErrorLog logs/error_log
LogLevel debug
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
CustomLog logs/access_log combined  env=!nolog

<Location /balancer-manager>
    SetHandler balancer-manager

    Order Deny,Allow
    Deny from all
    Allow from 192.168.15
</Location>

NameVirtualHost *:80
<VirtualHost *:80>

    ServerName bidok.uibk.ac.at
    ProxyPreserveHost On

    <Proxy balancer://webapp-cluster>
         BalancerMember http://192.168.15.5
         #BalancerMember http://192.168.15.6
    </Proxy>

    <Proxy balancer://axkit-cluster>
         BalancerMember http://192.168.15.2 loadfactor=100
         BalancerMember http://192.168.15.3 loadfactor=50
    </Proxy>

    RewriteEngine On
    RewriteRule ^/library/q(.*)$      balancer://webapp-cluster/gopublic/content/bidok/library$1
 [P,L]
    ProxyPassReverse /library/q       balancer://webapp-cluster/gopublic/content/bidok/library
    RewriteRule ^/ximsroot/?(.*)$     balancer://webapp-cluster/ximsroot/$1              
        [P,L]
    ProxyPassReverse  /ximsroot/      balancer://webapp-cluster/ximsroot/
    RewriteRule ^/?(.*)$              balancer://axkit-cluster/$1                        
        [P,L]
    ProxyPassReverse  /               balancer://axkit-cluster/
</VirtualHost>

-- 
IT Services                University of Innsbruck    
CFB4 D6E7 33F4 34C0 18B9  6661 E355 4337 3F8B D9C2
 http://purl.org/net/hansjoerg.pehofer/public_key

Mime
View raw message