I thought you said you have "multiple" servers but thousands of domains. In
that case, just list the servers by IP address and the proxy will pass the
Host header value as supplied by the client. You should probably avoid
using names resolved using DNS anyway so that a DNS hickup doesn't
effectively disable your proxy.
backend production
mode http
option forwardfor
balance source
option httpclose
server prod1 10.10.10.11:80 <http://example.com/>
server prod2 10.10.10.12:80 <http://example.com/>
server prod3 10.10.10.13:80 <http://example.com/>
On Fri, Dec 10, 2010 at 10:25 AM, Anthony Saenz
<[email protected]>wrote:
> Well, it's not that it doesn't work but we have approximately 1200 domains
> (that we actively develop on) and it doesn't seem very logical to hardcode
> each domain in. I was wondering if there was a workaround for the lines
> below so instead of using example.com:80 using a variable such as $HOST:80
> (whichever host the end user is attempting to connect to).
>
>
> backend production
> mode http
> option forwardfor
> balance source
> option httpclose
> server prod1 example.com:80 <http://example.com/>
>
> On Fri, Dec 10, 2010 at 10:18 AM, Bryan Talbot <[email protected]>wrote:
>
>> I do something similar using a config that is pretty much like what you've
>> shown. What doesn't work about the config you've shown?
>>
>> -Bryan
>>
>>
>>
>>
>> On Fri, Dec 10, 2010 at 9:05 AM, Anthony Saenz <
>> [email protected]> wrote:
>>
>>> Hi,
>>>
>>> Don't mean to bug but did anyone get a chance to possibly look at this
>>> and provide some assistance or does anyone know of alternative means to get
>>> this to work with cookie information?
>>>
>>> Thanks.
>>>
>>>
>>> On 12/8/10 3:43 PM, Anthony Saenz wrote:
>>>
>>>> Hey,
>>>>
>>>> I was wondering if anyone could be of any assistance? I'm trying to use
>>>> HAProxy to forward based on cookie and host. As it stands, I want HAProxy
>>>> to
>>>> see if a cookie is set and if it is, forward to a development server and if
>>>> it isn't just push out to production. The main issue being, we have
>>>> multiple
>>>> production servers and a few thousand domains, so hard coding everything
>>>> doesn't seem very efficient.
>>>>
>>>> Is there a way to have HAProxy forward the production request based on
>>>> the host the person is attempting to initially connect to without it being
>>>> static in the configuration file? Here's what I have so far...
>>>>
>>>> global
>>>> daemon
>>>>
>>>> defaults
>>>> mode http
>>>> timeout connect 10000 # default 10 second time out if a backend is
>>>> not found
>>>> timeout client 300000
>>>> timeout server 300000
>>>> maxconn 60000
>>>> retries 3
>>>>
>>>> frontend read_cookies
>>>> bind :80
>>>>
>>>> acl is_servermagic hdr_reg(Cookie) dev_magic=.*
>>>>
>>>> use_backend development if is_servermagic
>>>>
>>>> default_backend production
>>>>
>>>> backend development
>>>> mode http
>>>> option forwardfor
>>>> balance source
>>>> option httpclose
>>>> server dev1 192.168.1.100:80
>>>>
>>>> backend production
>>>> mode http
>>>> option forwardfor
>>>> balance source
>>>> option httpclose
>>>> server prod1 example.com:80
>>>>
>>>>
>>>
>>
>