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
signature.asc
Description: Digital signature
