Загрузка данных
global
log /dev/log local0
log /dev/log local1 notice
maxconn 8000
chroot /var/lib/haproxy
master-worker
stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
stats timeout 30s
user haproxy
group haproxy
# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets
ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA
ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
tune.ssl.default-dh-param 2048
defaults
log global
mode http
option httplog
option dontlognull
retries 3
timeout connect 5s
timeout http-keep-alive 1s
timeout http-request 15s
timeout queue 30s
timeout client 300s
timeout server 300s
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
# ---------------------------------------------------------------------
# HAProxy Monitoring
# ---------------------------------------------------------------------
listen stats
bind :1111
mode http
option forwardfor
option http-server-close
stats enable
stats uri /
stats refresh 5s
stats show-legends
stats realm Haproxy\ Statistics
stats auth admin:1password2$
# -------------------
# FrontEnd Begins
# -------------------
frontend fe_mail
bind *:80
http-response set-header X-Frame-Options SAMEORIGIN
http-response set-header X-Content-Type-Options nosniff
http-response set-header Strict-Transport-Security max-age=63072000
option forwardfor
# Allow Exchange Admin Center to certain private network only
acl private_network src 10.3.3.0/24 10.3.2.0/24
acl ecp_req path_beg -i /ecp
http-request deny if ecp_req !private_network
redirect scheme https code 301 if !{ ssl_fc }
bind *:443 ssl crt /etc/haproxy/proxy.pem alpn h2,http/1.1
acl xmail hdr(host) -i mail.riskstudio.ru autodiscover.riskstudio.ru mail.corp.local mail.remind.ru autodiscover.remind.ru
acl autodiscover path_beg -i /Autodiscover /autodiscover
acl mapi path_beg -i /mapi
acl rpc path_beg -i /rpc
acl owa path_beg -i /owa /OWA
acl eas path_beg -i /Microsoft-Server-ActiveSync /Microsoft-Server-activeSync
acl ews path_beg -i /EWS /ews
acl oab path_beg -i /OAB
acl default_for_mail path_beg -i /
acl internal_networks src 10.1.0.0/16 10.2.0.0/16 10.3.0.0/16 10.100.0.0/24
http-request deny if mapi !internal_networks
use_backend be_ex2019_owa if xmail owa
use_backend be_ex2019_autodiscover if xmail autodiscover
use_backend be_ex2019_mapi if xmail mapi
use_backend be_ex2019_activesync if xmail eas
use_backend be_ex2019_ews if xmail ews
use_backend be_ex2019_rpc if xmail rpc
use_backend be_ex2019_ecp if xmail ecp_req
use_backend be_ex2019_default if xmail default_for_mail
frontend fe_ex2019_25
bind *:25
mode tcp
option tcplog
default_backend bk_ex2019_25
#frontend fe_exchange_587
# bind *:587
# mode tcp
# option tcplog
# default_backend bk_exchange_587
#
#frontend fe_exchange_993
# bind *:993
# mode tcp
# option tcplog
# default_backend bk_exchange_993
#
#frontend fe_exchange_995
# bind *:995
# mode tcp
# option tcplog
# default_backend bk_exchange_995
#------------------------------
# Back-end section
#------------------------------
backend be_ex2019_autodiscover
mode http
option httpchk GET /autodiscover/healthcheck.htm
option log-health-checks
http-check expect status 200
server rumow11ex01v rumow11ex01v.corp.local:443 check maxconn 1000 ssl verify none
server rumow11ex02v rumow11ex02v.corp.local:443 check maxconn 1000 ssl verify none
backend be_ex2019_mapi
mode http
balance source
option httpchk GET /mapi/healthcheck.htm
option log-health-checks
http-check expect status 200
option http-keep-alive
option prefer-last-server
server rumow11ex01v rumow11ex01v.corp.local:443 check maxconn 1000 ssl verify none
server rumow11ex02v rumow11ex02v.corp.local:443 check maxconn 1000 ssl verify none
backend be_ex2019_rpc
mode http
balance source
option httpchk GET /rpc/healthcheck.htm
option log-health-checks
http-check expect status 200
server rumow11ex01v rumow11ex01v.corp.local:443 check maxconn 1000 ssl verify none
server rumow11ex02v rumow11ex02v.corp.local:443 check maxconn 1000 ssl verify none
backend be_ex2019_owa
mode http
balance source
option httpchk GET /owa/healthcheck.htm
option log-health-checks
http-check expect status 200
server rumow11ex01v rumow11ex01v.corp.local:443 check maxconn 1000 ssl verify none
server rumow11ex02v rumow11ex02v.corp.local:443 check maxconn 1000 ssl verify none
backend be_ex2019_activesync
mode http
option httpchk GET /microsoft-server-activesync/healthcheck.htm
option log-health-checks
http-check expect status 200
server rumow11ex01v rumow11ex01v.corp.local:443 check maxconn 1000 ssl verify none
server rumow11ex02v rumow11ex02v.corp.local:443 check maxconn 1000 ssl verify none
backend be_ex2019_ews
mode http
balance source
option httpchk GET /ews/healthcheck.htm
option log-health-checks
http-check expect status 200
server rumow11ex01v rumow11ex01v.corp.local:443 check maxconn 1000 ssl verify none
server rumow11ex02v rumow11ex02v.corp.local:443 check maxconn 1000 ssl verify none
backend be_ex2019_ecp
mode http
balance source
option httpchk GET /ecp/healthcheck.htm
option log-health-checks
http-check expect status 200
server rumow11ex01v rumow11ex01v.corp.local:443 check maxconn 1000 ssl verify none
server rumow11ex02v rumow11ex02v.corp.local:443 check maxconn 1000 ssl verify none
backend be_ex2019_default
mode http
balance source
server rumow11ex01v rumow11ex01v.corp.local:443 check maxconn 1000 ssl verify none
server rumow11ex02v rumow11ex02v.corp.local:443 check maxconn 1000 ssl verify none
backend bk_ex2019_25
mode tcp
source 0.0.0.0 usesrc clientip
server rumow11ex01v rumow11ex01v.corp.local:25 check
server rumow11ex02v rumow11ex02v.corp.local:25 check
#backend bk_exchange_587
# mode tcp
# server rumow11ex01v rumow11ex01v.corp.local:587 check maxconn 1000 ssl verify none
# server rumow11ex02v rumow11ex02v.corp.local:587 check maxconn 1000 ssl verify none
#
#backend bk_exchange_993
# mode tcp
# server rumow11ex01v rumow11ex01v.corp.local:993 check maxconn 1000 ssl verify none
# server rumow11ex02v rumow11ex02v.corp.local:993 check maxconn 1000 ssl verify none
#
#backend bk_exchange_995
# mode tcp
# server rumow11ex01v rumow11ex01v.corp.local:995 check maxconn 1000 ssl verify none
# server rumow11ex02v rumow11ex02v.corp.local:995 check maxconn 1000 ssl verify none