2015-09-11 2 views
0

J'ai configuré HAproxy version 1.5.4 comme NLB pour 2 serveurs multi-rôles Exchange.Redirection HAProxy 1.5 avec Exchange 2013 OWA

J'essaye maintenant d'obtenir la redirection fonctionnant quand un utilisateur tape dans le nom d'hôte plat "webmail" dans un navigateur. Je voudrais qu'il soit redirigé à https://webmail.domain.com/owa

Voici ma config haproxy existante.

global 
log /dev/log local0 
log /dev/log local1 notice 
chroot /var/lib/haproxy 
stats socket /run/haproxy/admin.sock mode 660 level admin 
stats timeout 30s 
user haproxy 
group haproxy 
daemon 

defaults 
log global 
mode tcp 
balance roundrobin 
retries 3 
option redispatch 
maxconn 10000 
    timeout connect 5000 
    timeout client 50000 
    timeout server 50000 
errorfile 400 /etc/haproxy/errors/400.http 
errorfile 403 /etc/haproxy/errors/403.http 
errorfile 408 /etc/haproxy/errors/408.http 
errorfile 500 /etc/haproxy/errors/500.http 
errorfile 502 /etc/haproxy/errors/502.http 
errorfile 503 /etc/haproxy/errors/503.http 
errorfile 504 /etc/haproxy/errors/504.http 


listen OWA 10.20.100.120:443 
option httpchk GET /owa/healthcheck.h 
http-check expect status 200 
server EX2013A.domain.com 10.20.100.126 check port 80 
server EX2013B.domain.com 10.20.100.127 check port 80 

listen EAC 10.20.100.131:443 
option httpchk /eac/healthcheck.h 
server EX2013A.domain.com 10.20.100.126 check port 80 
server EX2013B.domain.com 10.20.100.127 check port 80 

listen EWS 10.20.100.122:443 
option httpchk get /ews/healthcheck.h 
server EX2013A.domain.com 10.20.100.126 check port 80 
server EX2013B.domain.com 10.20.100.127 check port 80 

listen OAB 10.20.100.123:443 
option httpchk get /oab/healthcheck.h 
server EX2013A.domain.com 10.20.100.126 check port 80 
server EX2013B.domain.com 10.20.100.127 check port 80 


listen Autodiscover 10.20.100.132:443 
option httpchk get /autodiscover/healthcheck.h 
server EX2013A.domain.com 10.20.100.126 check port 80 
server EX2013B.domain.com 10.20.100.127 check port 80 

listen OA 10.20.100.133:443 
option httpchk get /rpc/healthcheck.h 
server EX2013A.domain.com 10.20.100.126 check port 80 
server EX2013B.domain.com 10.20.100.127 check port 80 

listen SMTP 10.20.100.120:25 
option smtpchk 
server EX2013A.domain.com 10.20.100.126 check port 25 
server EX2013B.domain.com 10.20.100.127 check port 25 


listen stats 0.0.0.0:4000 
mode http 
balance 
timeout client 5000 
timeout connect 4000 
timeout server 30000 
stats enable 
stats hide-version 
stats uri /stats 
stats auth admin:password 

Merci

Répondre

0

Vous n'avez pas précise quelle version de HAProxy que vous utilisez, donc je suis en supposant que ce soit de 1,5. D'abord, la création d'une section d'écoute avec le port IP: lié sur la ligne de description de section est maintenant obsolète. Deuxièmement, pour le rendre plus clair, j'ajouterais également le port 443 sur la ligne de serveur.

S'il vous plaît écrivez votre section OWA comme ceci:

listen OWA 
    bind 10.20.100.120:443 
    option httpchk GET /owa/healthcheck.h 
    http-check expect status 200 
    server EX2013A.domain.com 10.20.100.126:443 check port 80 
    server EX2013B.domain.com 10.20.100.127:443 check port 80 

Maintenant, pour effectuer la redirection, vous avez besoin d'un frontend dédié à répondre au trafic HTTP clair que:

frontend OWA_http 
    bind 10.20.100.120:80 
    http-request redirect location https://%[req.hdr(Host)]/owa/ 

Baptiste

+0

Cela semble fonctionner mais seulement environ 50% du temps selon le navigateur. Parfois, je reçois un message "Impossible d'afficher la page". D'autres fois, il redirigera le nom plat http: // webmail vers https: // webmail au lieu du nom de domaine complet. Sur Google Chrome, il ne redirige jamais vers le nom de domaine complet. Des idées à ce sujet? – Methodman85