We've recently added a new server to a cluster of webservers. The old
servers are using mod_backhand v1.1.0, and the new server is using v1.20.
We have a very strange setup in which a dual redirect takes place; this
was necessary at the time in order to load-balance, but then subsequently
maintain state for an SSL session. The new bySession directive may
simplify this, but for now, we want to bring new servers into the cluster
one at a time, seamlessly. Trouble is, using the same httpd.conf generates
different behavior. These are our virtual host settings on the old servers
(IP addresses and hostnames changed to protect the innocent), in the order
they appear in the file:
NameVirtualHost 10.0.0.1
<VirtualHost 10.0.0.1>
ServerName www.test1.com
DocumentRoot "/opt/local/httpd/www/htdocs"
</VirtualHost>
<VirtualHost 10.0.0.1>
ServerName www.test.com
DocumentRoot "/opt/local/httpd/www/htdocs/redirect"
##BackhandSelfRedirect On
<Directory "/opt/local/httpd/www/htdocs/redirect">
Backhand byAge
Backhand byRandom
Backhand byLogWindow
Backhand byCost
</Directory>
</VirtualHost>
<VirtualHost _default_:443>
# General setup for the virtual host
DocumentRoot "/opt/local/httpd/www/htdocs"
(additional SSL directives)
</VirtualHost
So basically, requests coming into www.test.com (which is a DNS
round-robin entry itself, for further redundancy) get sent to the
"redirect" directory and get redirected by Backhand. The redirect
directory itself contains an index.html which executes an http redirect to
a page on the same server via https.
These virtual host settings produce the following listing in the
/backhand/ status page:
Entry Hostname Age Address etc.
0 www.test1.com 0 10.0.0.1:80 etc.
0 www.test2.com 0 10.0.0.2:80 etc.
(more servers follow)
and everything works great, but when we add the server using mod_backhand
1.2.0 to this cluster, the entry for it reads:
0 www.test3.com 0 10.0.0.2:443 etc.
The net result is that backhand redirects properly, but tries to send an
http request to port 443, the https port, producing an error.
Does anyone have any ideas on how I can get backhand to think it needs to
redirect to port 80 instead of 443 on this particular server? I've played
with nearly every possible combination of virtual host settings, and it's
unclear to me where backhand is pulling the 443 from, since the Backhand
directives aren't inside the SSL virtual host container. What am I
missing?
Thanks-
James Ervin
UNC-Chapel Hill
servers are using mod_backhand v1.1.0, and the new server is using v1.20.
We have a very strange setup in which a dual redirect takes place; this
was necessary at the time in order to load-balance, but then subsequently
maintain state for an SSL session. The new bySession directive may
simplify this, but for now, we want to bring new servers into the cluster
one at a time, seamlessly. Trouble is, using the same httpd.conf generates
different behavior. These are our virtual host settings on the old servers
(IP addresses and hostnames changed to protect the innocent), in the order
they appear in the file:
NameVirtualHost 10.0.0.1
<VirtualHost 10.0.0.1>
ServerName www.test1.com
DocumentRoot "/opt/local/httpd/www/htdocs"
</VirtualHost>
<VirtualHost 10.0.0.1>
ServerName www.test.com
DocumentRoot "/opt/local/httpd/www/htdocs/redirect"
##BackhandSelfRedirect On
<Directory "/opt/local/httpd/www/htdocs/redirect">
Backhand byAge
Backhand byRandom
Backhand byLogWindow
Backhand byCost
</Directory>
</VirtualHost>
<VirtualHost _default_:443>
# General setup for the virtual host
DocumentRoot "/opt/local/httpd/www/htdocs"
(additional SSL directives)
</VirtualHost
So basically, requests coming into www.test.com (which is a DNS
round-robin entry itself, for further redundancy) get sent to the
"redirect" directory and get redirected by Backhand. The redirect
directory itself contains an index.html which executes an http redirect to
a page on the same server via https.
These virtual host settings produce the following listing in the
/backhand/ status page:
Entry Hostname Age Address etc.
0 www.test1.com 0 10.0.0.1:80 etc.
0 www.test2.com 0 10.0.0.2:80 etc.
(more servers follow)
and everything works great, but when we add the server using mod_backhand
1.2.0 to this cluster, the entry for it reads:
0 www.test3.com 0 10.0.0.2:443 etc.
The net result is that backhand redirects properly, but tries to send an
http request to port 443, the https port, producing an error.
Does anyone have any ideas on how I can get backhand to think it needs to
redirect to port 80 instead of 443 on this particular server? I've played
with nearly every possible combination of virtual host settings, and it's
unclear to me where backhand is pulling the 443 from, since the Backhand
directives aren't inside the SSL virtual host container. What am I
missing?
Thanks-
James Ervin
UNC-Chapel Hill