It sounds like what you really want is to put apache (or some other web
server) in front of haproxy to do name based virtual hosting. Requests
for your two domains would work like this:
client -> apache:80 (domain1 virtual host) -> haproxy:8080
client -> apache:80 (domain2 virtual host) -> haproxy:8081
I'm using mod_rewrite in different virtual hosts to proxy requests to
haproxy in exactly this way. Also, in this setup, a request to
http://ec2XXXXXXXXXX.compute-1.amazonaws.com
<http://ec2XXXXXXXXXX.compute-1.amazonaws.com/xhaproxy214591>/xhaproxy214591
<http://ec2XXXXXXXXXX.compute-1.amazonaws.com/xhaproxy214591> would be
caught by your first (default) virtual host and proxied correctly to
haproxy.
I hope I understood your question correctly.
Ryan
On 10/12/2009 02:30 PM, Xia Jiang wrote:
Hello,
I have a question regarding configuration for multiple applications
using Haproxy.
What I want: use Haproxy to handle LB among multiple instances, which
each instance can have more than one servers.
What I have:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Configuration for one application:
listen domain1 :8080
mode http
balance roundrobin
option httpclose
option forwardfor
stats uri /xhaproxy214591
option httpchk GET /healthcheck214591.php
# Example server line (with optional cookie and check included)
server i-41319a29 10.251.75.47:80 check inter 3000 rise 2 fall
3 maxconn 650
server i-41319a29 10.251.75.48:80 check inter 3000 rise 2 fall
3 maxconn 650
listen domain2 :8081
mode http
balance roundrobin
option httpclose
option forwardfor
stats uri /xhaproxy214591
option httpchk GET /healthcheck214591.php
# Example server line (with optional cookie and check included)
server i-71319a19 10.208.217.220:80 check inter 3000 rise 2
fall 3 maxconn 650
server i-71319a19 10.208.218.220:80 check inter 3000 rise 2
fall 3 maxconn 650
Question:
1. Do I have to set the one of the application port numbers to be 80?
Otherwise it won't show me the status page.
2. By setting one of the port number to be "80", I can't access the
other application.
i.e, by setting domain1 port number to be 80, by hitting
http://ec2XXXXXXXXXX.compute-1.amazonaws.com, I can see the index page
of "10.251.75.47" or "10.251.75.48" but I can't view "10.208.217.220"
or "10.208.218.220" by hitting
http://ec2XXXXXXXXXX.compute-1.amazonaws.com:8081
Thanks!
Your answer will be greatly appreciated.
Xia