| 
 
Hi all,
I'm currently setting up an LVS-NAT system with two directors and two 
realservers. The realservers run a proprietary application which uses 
apache (what I will call 'Port 80 apache'), tomcat and another apache 
running on port 8008 with modperl (what I will call 'modperl apache'). The 
application also uses an Oracle database on a separate server (unknown to 
the directors). The realservers listen on port 80, and all traffic to/from 
the realservers goes through this port. 
When I install the proprietary software on a realserver, it doesn't 
initially work; the only thing one sees when one hits it with a browser is 
'proxy error'. This is because of these lines in the Port 80 apache 
httpd.conf file: 
    RewriteRule ^/index.html http://%{HTTP_HOST}:8008/index.html [P]
    RewriteRule ^/bin(.*).pl(.*) http://%{HTTP_HOST}:8008/bin$1.pl$2 [P]
    RewriteRule ^/@@(.*) http://%{HTTP_HOST}:8008/@@$1 [P]
    RewriteRule ^/%40%40(.*) http://%{HTTP_HOST}:8008/@@$1 [P]
What appears to be happening is that the client hits the VIP (on the active 
director), and the director passes the hit through to the appropriate 
realserver with, apparently, an HTTP Host: header of the VIP. Port 80 
apache on the realserver sees this Host: header, and as a result, the 
RewriteRules would appear to redirect the hit to port 8008 on the VIP 
(which of course doesn't exist). Hence the proxy error.
To fix this, I've manually edited the httpd.conf file above and replaced 
'%{HTTP_HOST}' with the actual FQDN of the realserver. However, I'm 
wondering if this is but the tip of the proverbial iceberg; a 'grep -r' 
through the application's files for 'HTTP_HOST' turns up quite a few 
occurrences of it. 
I'm assuming that, if my LVS director could rewrite the Host: header to be 
the FQDN of the realserver to which it will send the hit, that would fix 
this problem. Is this correct? If so, from a quick read of LVS doco, 
mailing archives etc., it looks like I need a Layer 7 switch? If so, would 
it be ktcpvs or something similar? 
Please forgive my somewhat neonatal understanding of this issue - from a 
couple of hours' reading this afternoon, my brain hurts ;-) 
Thanks and Regards,
Guy.
 |