Hi,

You're not supposed to have a NLB in the loop, and I would say it's
introducing more issues than it could solve!

Please find our exchange 2013 configuration template here:
https://github.com/exceliance/haproxy/blob/master/configuration_templates/exchange2013_simple_https_load-balancing.tpl

You can use the script below to turn the template into HAProxy configuration:
BASH:
https://github.com/exceliance/haproxy/blob/master/configuration_templates/genconf.sh
Powershell:
https://github.com/exceliance/haproxy/blob/master/configuration_templates/genconf.ps1

Baptiste


On Fri, Sep 20, 2013 at 7:56 AM, Leo Raikhman <[email protected]> wrote:
> Hi Baptiste,
>
> So you do layer 7 mode http?ould you be able to give me a copy of the confit 
> whichever irks for you?
>
> I'm happy to give that a shot tonight, Australia time... And I'll get back to 
> you.
>
> In terms of netscaler, I have a clustered pair that I created a virtual 
> server on in tcp mode, balancing port 443 to the NLB IP of the CAS servers - 
> it's doing essentially the same thing as the haproxy server is supposed to be 
> doing...
>
> Ta,
> Leo
>
> Sent from my iPad
>
>> On 20 Sep 2013, at 3:35 pm, Baptiste <[email protected]> wrote:
>>
>> Hi Leo,
>>
>> I have a lab with a slightly different configuration than yours.
>> In my lab, HAProxy decipher the traffic, log everything then recipher
>> the traffic to the server. Like a man in the middle.
>> I have a round robin algorithm + no session persistence + option
>> http-server-close.
>>
>> I ran the same test as yours.
>>
>> From my lab platform, I can see those URLs requested, in front the
>> server that was used:
>> exch1: "POST 
>> /ecp/DDI/DDIService.svc/SetObject?schema=PasswordService&msExchEcpCanary=<SOME
>> BLAH BLAH HERE> HTTP/1.1"
>> exch2: "GET /ecp/PersonalSettings/logoff.aspx?src=exch HTTP/1.1"
>> exch1: "GET /owa/logoff.owa HTTP/1.1"
>> exch2: "GET 
>> /owa/auth/logon.aspx?url=https%3a%2f%2fmail.2013.haproxylab.net%2fowa%2flogoff.owa&reason=0
>> HTTP/1.1"
>>
>> so sounds normal I'm logged out after a password update: application design.
>>
>> That said, your configuration should not produce this effect, since
>> all your requests are routed to a single server.
>> An other point: my password has been changed, but now I can't change
>> it anymore due to a password policy issue (whatever I type in, it says
>> my password is too weak)...
>>
>> I'll investigate on this in my platform and keep you updated.
>>
>> Can you tell us exactly how your netscaller is configured and works
>> with exchange 2013?
>>
>> Baptiste
>>
>>
>>> On Fri, Sep 20, 2013 at 3:56 AM, Leo Raikhman <[email protected]> wrote:
>>> Hi all,
>>>
>>> I have haproxy 1.5dev19 running in TCP mode in front of my Exchange 2013 CAS
>>> servers. My config is appended.
>>>
>>> It seems that haproxy can't handle the outlook web access redirect. When I
>>> log into OWA 2013, internally, and externally, everything is fine.
>>>
>>> When I click on the "Options" or "Change Password" item on the OWA menu the
>>> URL changes from https://email.company.com/owa to
>>> https://email.company.com/owa/auth/logon.aspx?replaceCurrent=1&url=https%3a%2f%2femail.company.com%2fecp%2f%3frfr%3dowa%26owaparam%3dmodurl%253D0%26p%3daccount
>>> and drops me into the Exchange 2013 login page again, except I can't login.
>>>
>>> This does not happen internally, or when I load balance the CAS servers
>>> behind a Citrix NetScaler. Is there something I'm missing? Does haproxy have
>>> a character limit on URLs in TCP mode? Can it not decode the URL encoding of
>>> those characters?
>>>
>>> Please help...
>>>
>>> Config:
>>>
>>> defaults
>>>  option  dontlognull
>>>  option  redispatch
>>>  option  contstats
>>>  retries 3
>>>  timeout connect 5s
>>>  timeout http-keep-alive 1s
>>>  timeout http-request 15s
>>>  timeout queue 30s
>>>  timeout tarpit 1m
>>>  backlog 10000
>>>
>>>  balance roundrobin
>>>  mode tcp
>>>  option tcplog
>>>  log global
>>>  timeout client 300s
>>>  timeout server 300s
>>>  default-server inter 3s rise 2 fall 3
>>>
>>> frontend ft_exchange_tcp
>>>  bind 10.0.0.9:443 name https
>>>  maxconn 10000
>>>  default_backend bk_exchange_tcp
>>>
>>> backend bk_exchange_tcp
>>>  stick-table type ip size 10240k expire 60m
>>>  stick on src
>>>  option redispatch
>>>  option abortonclose
>>>  balance leastconn
>>>  server cas1 10.0.0.15:443 maxconn 10000 check
>>>  server cas2 10.0.0.16:443 maxconn 10000 check
>>>
>>> --
>>> Leo Raikhman
>>> VMware ESX/Storage Consultant
>>> Ph: 0404943618
>>> Email: [email protected]

Reply via email to