Балансировка Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² Zimbra Open-Source Edition ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ HAProxy

Одной ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈ построСнии ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… инфраструктур Zimbra OSE являСтся грамотная балансировка Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Помимо Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ сСрвиса, Π±Π΅Π· балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ сСрвиса для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ балансировщики Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΏΠ΅Ρ€Π΅Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ запросы ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСрами. Π‘Ρ€Π΅Π΄ΠΈ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊ довольно ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅, Π²Ρ€ΠΎΠ΄Π΅ RoundRobin, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ просто ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ запрос направляСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π² спискС сСрвСру, Π° Π΅ΡΡ‚ΡŒ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ HAProxy, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡˆΠΈΡ€ΠΎΠΊΠΎ примСняСтся Π² высоконагруТСнных Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… инфраструктурах ΠΈΠ·-Π·Π° ряда вСсомых достоинств. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΆΠ΅ посмотрим Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ балансировщика Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ HAProxy ΠΈ Zimbra OSE.

Балансировка Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² Zimbra Open-Source Edition ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ HAProxy

Π˜Ρ‚Π°ΠΊ, ΠΏΠΎ условиям Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π°ΠΌ Π΄Π°Π½Π° инфраструктура Zimbra OSE, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π΄Π²Π° Zimbra Proxy, Π΄Π²Π° сСрвСра LDAP ΠΈ LDAP Replica, Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° с 1000 ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… ящиков Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈ Ρ‚Ρ€ΠΈ MTA. Учитывая Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ с ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΌ сСрвСром, Π½Π° Π½Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Ρ‚Ρ€ΠΈ Π²ΠΈΠ΄Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, Π½ΡƒΠΆΠ΄Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π² балансировкС: HTTP для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ POP ΠΈ SMTP для пСрСсылки элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹. ΠŸΡ€ΠΈ этом HTTP-Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° сСрвСры Zimbra Proxy с ip-адрСсами 192.168.0.57 ΠΈ 192.168.0.58, Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊ SMTP Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° MTA-сСрвСры с ip-адрСсами 192.168.0.77 ΠΈ 192.168.0.78.

Как ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ, для обСспСчСния Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ распрСдСлСния запросов ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСрами ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ HAProxy, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠΌ ΡƒΠ·Π»Π΅ инфраструктуры Zimbra ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Ubuntu 18.04. Установка haproxy Π² этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС осущСствляСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ sudo apt-get install haproxy. ПослС этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ /etc/default/haproxy ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ENABLED=0 Π½Π° ENABLED=1. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ haproxy Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, достаточно ввСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ service haproxy. Π’ Ρ‚ΠΎΠΌ случаС, Ссли эта слуТба Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, это Π±ΡƒΠ΄Π΅Ρ‚ понятно ΠΏΠΎ Π²Ρ‹Π²ΠΎΠ΄Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Одним ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… Π½Π΅Π΄ΠΎΡ‡Π΅Ρ‚ΠΎΠ² HAProxy являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ IP-адрСс ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, подмСняя Π΅Π³ΠΎ своим собствСнным. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ситуациям, ΠΊΠΎΠ³Π΄Π° присылаСмыС Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌΠΈ письма нСльзя Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ IP-адрСсу, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ список. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, этот вопрос ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» /opt/zimbra/common/conf/master.cf.in Π½Π° сСрвСрах с Postfix ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки:

26      inet  n       -       n       -       1       postscreen
        -o postscreen_upstream_proxy_protocol=haproxy
 
466    inet  n       -       n       -       -       smtpd
%%uncomment SERVICE:opendkim%%  -o content_filter=scan:[%%zimbraLocalBindAddress%%]:10030
        -o smtpd_tls_wrappermode=yes
        -o smtpd_sasl_auth_enable=yes
        -o smtpd_client_restrictions=
        -o smtpd_data_restrictions=
        -o smtpd_helo_restrictions=
        -o smtpd_recipient_restrictions=
        -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
        -o syslog_name=postfix/smtps
        -o milter_macro_daemon_name=ORIGINATING
        -o smtpd_upstream_proxy_protocol=haproxy
%%uncomment LOCAL:postjournal_enabled%% -o smtpd_proxy_filter=[%%zimbraLocalBindAddress%%]:10027
%%uncomment LOCAL:postjournal_enabled%% -o smtpd_proxy_options=speed_adjust
 
588 inet n      -       n       -       -       smtpd
%%uncomment SERVICE:opendkim%%  -o content_filter=scan:[%%zimbraLocalBindAddress%%]:10030
        -o smtpd_etrn_restrictions=reject
        -o smtpd_sasl_auth_enable=%%zimbraMtaSaslAuthEnable%%
        -o smtpd_tls_security_level=%%zimbraMtaTlsSecurityLevel%%
        -o smtpd_client_restrictions=permit_sasl_authenticated,reject
        -o smtpd_data_restrictions=
        -o smtpd_helo_restrictions=
        -o smtpd_recipient_restrictions=
        -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
        -o syslog_name=postfix/submission
        -o milter_macro_daemon_name=ORIGINATING
        -o smtpd_upstream_proxy_protocol=haproxy
%%uncomment LOCAL:postjournal_enabled%% -o smtpd_proxy_filter=[%%zimbraLocalBindAddress%%]:10027
%%uncomment LOCAL:postjournal_enabled%% -o smtpd_proxy_options=speed_adjust

Π—Π° счСт этого ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ ΠΏΠΎΡ€Ρ‚Ρ‹ 26, 466 ΠΈ 588, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ входящий Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΈΠ· HAProxy. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ сохранСны, слСдуСт ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Postfix Π½Π° всСх сСрвСрах с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ zmmtactl restart.

ПослС этого приступим ΠΊ настройкС HAProxy. Для этого спСрва создадим Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию Ρ„Π°ΠΉΠ»Π° с настройками cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak. Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ исходный Ρ„Π°ΠΉΠ» /etc/haproxy/haproxy.cfg ΠΈ Π½Π°Ρ‡Π½Π΅ΠΌ поэтапно Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ настройки. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π±Π»ΠΎΠΊΠΎΠΌ станСт Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ сСрвСра, ΡΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎ Π»ΠΎΠ³ΠΈ, установка максимально Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ числа ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ исполняСмый процСсс.

global
    user daemon
    group daemon
    daemon
    log 127.0.0.1 daemon
    maxconn 5000
    chroot /var/lib/haproxy

Π¦ΠΈΡ„Ρ€Π° Π² 5000 ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ появилась нСспроста. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² нашСй инфраструктурС 4000 ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… ящиков, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ всС ΠΎΠ½ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΉΠ΄ΡƒΡ‚ Π² свою Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΏΠΎΡ‡Ρ‚Ρƒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ нСбольшой запас Π½Π° Ρ‚ΠΎΡ‚ случай, Ссли ΠΈΡ… число увСличится.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π±Π»ΠΎΠΊ с настройками ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ:

defaults
        timeout client 1m
        log global
        mode tcp
        timeout server 1m
        timeout connect 5s

Π’ этом Π±Π»ΠΎΠΊΠ΅ задаСтся максимальноС врСмя оТидания ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ сСрвСра, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Ρ‹Π²Π°Ρ‚ΡŒ соСдинСниС ΠΏΡ€ΠΈ Π΅Π³ΠΎ истСчСнии, Π° Ρ‚Π°ΠΊΠΆΠ΅ задаСтся Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ HAProxy. Π’ нашСм случаС балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ TCP, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ просто ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ TCP Π½Π΅ анализируя ΠΈΡ… содСрТимоС.

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π° для соСдинСний Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚Π°Ρ…. НапримСр, Ссли ΠΏΠΎΡ€Ρ‚ 25 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для SMTP-ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠΎΡ‡Ρ‚Ρ‹, Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π½Π΅ΠΌΡƒ Π½Π° MTA, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ Π² нашСй инфраструктурС. Если ΠΆΠ΅ соСдинСниС ΠΈΠ΄Π΅Ρ‚ Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ 80, Ρ‚ΠΎ это http-запрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π½Π° Zimbra Proxy.

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ для ΠΏΠΎΡ€Ρ‚Π° 25:

frontend smtp-25
bind *:27
default_backend backend-smtp-25
 
backend backend-smtp-25
server mta1 192.168.0.77:26 send-proxy
server mta2 192.168.0.78:26 send-proxy

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ для ΠΏΠΎΡ€Ρ‚Π° 465:

frontend smtp-465
bind *:467
default_backend backend-smtp-465

backend backend-smtp-465
server mta1 192.168.0.77:466 send-proxy
server mta2 192.168.0.78:466 send-proxy

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ для ΠΏΠΎΡ€Ρ‚Π° 587:

frontend smtp-587
bind *:589
default_backend backend-smtp-587
 
backend backend-smtp-587
server mail1 192.168.0.77:588 send-proxy
server mail2 192.168.0.78:588 send-proxy

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ для ΠΏΠΎΡ€Ρ‚Π° 80:

frontend http-80
bind    *:80
default_backend http-80
 
backend http-80
mode tcp
server zproxy1 192.168.0.57:80 check
server zproxy2 192.168.0.58:80 check

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ для ΠΏΠΎΡ€Ρ‚Π° 443:

frontend https
bind  *:443
default_backend https-443
 
backend https-443
mode tcp
server zproxy1 192.168.0.57:80 check
server zproxy2 192.168.0.58:80 check

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ… для пСрСсылки TCP-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΊ MTA рядом с ΠΈΡ… адрСсами стоит ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ send-proxy. Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹, Π² соотвСтствии с внСсСнными Π½Π°ΠΌΠΈ Ρ€Π°Π½Π΅Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² настройки Postfix, вмСстС с TCP-ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ пСрСсылался ΠΈ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ IP-адрСс Π΅Π³ΠΎ отправитСля.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ измСнСния Π² HAProxy внСсСны, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвис ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ service haproxy restart ΠΈ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ Π΅Π³ΠΎ использованию.

По всСм вопросам, связанными c Zextras Suite Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΡŽ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Β«ZextrasΒ» Π•ΠΊΠ°Ρ‚Π΅Ρ€ΠΈΠ½Π΅ Π’Ρ€ΠΈΠ°Π½Π΄Π°Ρ„ΠΈΠ»ΠΈΠ΄ΠΈ ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ [email protected]

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com