Hello All!
I currently have a test environment with an exchange 2013 configuration being load balanced by an HAProxy virtual machine. All is working moderately well, mail routes with no problem and there are no major issues. However, I have noticed two (2) oddities that I have been unable to remedy…
The first is that, I am able to get to the OWA portal just fine using https (https://mail.domain.com). Yet, when I attempt to use http to resolve the page, it returns nothing. Exchange 2013 is configured to redirect any http connection to https but when you attempt to resolve http://mail.domain.com, the browsers just spins. I believe that this is because i’m using layer 4 (TCP) load balancing instead of http load balancing.
Is there a way to forward any incoming request on port 80 to 443 on the back end using “TCP Mode”? Or is there an alternate configuration using “http mode” available that does NOT require loading an ssl certificate into HAProxy (All encryption/decryption will be handled by the CAS server… HAProxy simply forwards the incoming connections to said servers)?
The second issue I have is that, periodically, my test outlook account will display “connection to server lost”. It only does this for a few moments and then immediately reconnects and everything is fine. I have increased the timeouts in the defaults section but this did not seem to have any effect. Also, there are a large amount of “Client connection resets during transfers” in the HAProxy status page.
Configuration can be found below. Any insight/assistance is greatly appreciated!
Thank you!
global
user haproxy
group haproxy
log /dev/log local0
chroot /var/lib/haproxy#
maxconn 10000
daemon
defaults
mode tcp
balance leastconn
option redispatch
maxconn 10000
contimeout 5000
clitimeout 50000
srvtimeout 50000
default-server inter 3s rise 2s fall 3
timeout http-keep-alive 1s
timeout http-request 15s
timeout queue 30s
timeout tarpit 1m
backlog 10000
listen OWA 1.2.2.45:443
option httpchk GET /owa/healthcheck.htm
http-check expect status 200
server SERVER1 1.2.2.31 check port 80
server SERVER2 1.2.2.32 check port 80
listen EAC 1.2.2.45:443
option ssl-hello-chk GET /eas/healthcheck.htm
http-check expect status 200
server SERVER1 1.2.2.31:443 check
server SERVER2 1.2.2.32:443 check
listen EWS 1.2.2.45:443
option httpchk GET /ews/healthcheck.htm
http-check expect status 200
server SERVER1 1.2.2.31 check port 80
server SERVER2 1.2.2.32 check port 80
listen OAB 1.2.2.45:443
option httpchk GET /oab/healthcheck.htm
http-check expect status 200
server SERVER1 1.2.2.31 check port 80
server SERVER2 1.2.2.32 check port 80
listen EAS 1.2.2.45:443
option httpchk GET /Microsoft-Server-ActiveSync/healthcheck.htm
http-check expect status 200
server SERVER1 1.2.2.31 check port 80
server SERVER2 1.2.2.32 check port 80
listen Autodiscover 1.2.2.45:443
option httpchk GET /Autodiscover/healthcheck.htm
http-check expect status 200
server SERVER1 1.2.2.31 check port 80
server SERVER2 1.2.2.32 check port 80
listen OA 1.2.2.45:443
option httpchk GET /rpc/healthcheck.htm
http-check expect status 200
server SERVER1 1.2.2.31 check port 80
server SERVER2 1.2.2.32 check port 80