2015-09-11 5 views
0

Я установил HAproxy версию 1.5.4 в качестве NLB для 2 серверов Exchange с несколькими серверами.HAProxy 1.5 Перенаправление с Exchange 2013 OWA

Теперь я пытаюсь перенаправить работу, когда пользователь вводит в локальное имя хоста «webmail» в браузер. Я бы хотел, чтобы он перенаправлялся на https://webmail.domain.com/owa

Вот мой существующий конфигуратор haproxy.

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 

Благодаря

ответ

0

Вы не уточнили, какую версию HAProxy вы используете, поэтому я предполагаю, что это 1,5.

Во-первых, создание секции прослушивания со связанным IP-портом в строке описания раздела теперь устарело. Во-вторых, чтобы сделать его более ясным, я бы также добавил порт 443 на серверной строке.

Пожалуйста напишите ваш раздел OWA, как это:

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 

Теперь, чтобы выполнить переадресацию, вам нужен внешний интерфейс, посвященный отвечать только HTTP ясного трафик:

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

Батист

+0

Кажется, что это работает, но только около 50% времени в зависимости от браузера. Иногда я получаю сообщение «Страница не может быть отображено». В других случаях он перенаправляет плоское имя http: // webmail на https: // webmail вместо полного доменного имени. В Google Chrome он фактически никогда не перенаправляется на полное доменное имя. Есть идеи по этому поводу? – Methodman85