HAProxy เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชเชฟเชฎเซเชฌเซเชฐเชพ เช“เชชเชจ-เชธเซ‹เชฐเซเชธ เชเชกเชฟเชถเชจเชฎเชพเช‚ เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฟเช‚เช—

เชฎเซ‹เชŸเชพ เชชเชพเชฏเซ‡ เชเชฟเชฎเซเชฌเซเชฐเชพ OSE เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชฌเชจเชพเชตเชคเซ€ เชตเช–เชคเซ‡ เชฎเซเช–เซเชฏ เช•เชพเชฐเซเชฏเซ‹เชฎเชพเช‚เชจเซเช‚ เชเช• เชฏเซ‹เช—เซเชฏ เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฟเช‚เช— เช›เซ‡. เชนเช•เซ€เช•เชค เช เช›เซ‡ เช•เซ‡ เชคเซ‡ เชธเซ‡เชตเชพเชจเซ€ เช–เชพเชฎเซ€ เชธเชนเชฟเชทเซเชฃเซเชคเชพเชฎเชพเช‚ เชตเชงเชพเชฐเซ‹ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡ เช‰เชชเชฐเชพเช‚เชค, เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฟเช‚เช— เชตเชฟเชจเชพ เชฌเชงเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชฎเชพเชŸเซ‡ เชธเซ‡เชตเชพเชจเซ€ เชธเชฎเชพเชจ เชชเซเชฐเชคเชฟเชญเชพเชตเชจเซ€ เช–เชพเชคเชฐเซ€ เช•เชฐเชตเซ€ เช…เชถเช•เซเชฏ เช›เซ‡. เช† เชธเชฎเชธเซเชฏเชพเชจเซ‡ เช‰เช•เซ‡เชฒเชตเชพ เชฎเชพเชŸเซ‡, เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ - เชธเซ‰เชซเซเชŸเชตเซ‡เชฐ เช…เชจเซ‡ เชนเชพเชฐเซเชกเชตเซ‡เชฐ เชธเซ‹เชฒเซเชฏเซเชถเชจเซเชธ เช•เซ‡ เชœเซ‡ เชธเชฐเซเชตเชฐเซเชธ เชตเชšเซเชšเซ‡ เชตเชฟเชจเช‚เชคเซ€เช“เชจเซเช‚ เชซเชฐเซ€เชฅเซ€ เชตเชฟเชคเชฐเชฃ เช•เชฐเซ‡ เช›เซ‡. เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชฐเชพเช‰เชจเซเชกเชฐเซ‹เชฌเชฟเชจ เชœเซ‡เชตเชพ เชคเชฆเซเชฆเชจ เช†เชฆเชฟเชฎ เช›เซ‡, เชœเซ‡ เชฆเชฐเซ‡เช• เช…เชจเซเช—เชพเชฎเซ€ เชตเชฟเชจเช‚เชคเซ€เชจเซ‡ เชธเซ‚เชšเชฟเชฎเชพเช‚เชจเชพ เช†เช—เชฒเชพ เชธเชฐเซเชตเชฐเชจเซ‡ เชธเชฐเชณ เชฐเซ€เชคเซ‡ เชฎเซ‹เช•เชฒเซ‡ เช›เซ‡, เช…เชจเซ‡ เชคเซเชฏเชพเช‚ เชตเชงเซ เช…เชฆเซเชฏเชคเชจ เชชเชฃ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ HAProxy, เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช‰เชšเซเชš-เชฒเซ‹เชก เช•เชฎเซเชชเซเชฏเซเชŸเชฟเช‚เช— เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชฎเชพเช‚ เชตเซเชฏเชพเชชเช•เชชเชฃเซ‡ เชฅเชพเชฏ เช›เซ‡. เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชฒเชพเชญเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพ. เชšเชพเชฒเซ‹ เชเช• เชจเชœเชฐ เช•เชฐเซ€เช เช•เซ‡ เชคเชฎเซ‡ HAProxy เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เช…เชจเซ‡ Zimbra OSE เชจเซ‡ เชเช•เชธเชพเชฅเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

HAProxy เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชเชฟเชฎเซเชฌเซเชฐเชพ เช“เชชเชจ-เชธเซ‹เชฐเซเชธ เชเชกเชฟเชถเชจเชฎเชพเช‚ เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฟเช‚เช—

เชคเซ‡เชฅเซ€, เช•เชพเชฐเซเชฏเชจเซ€ เชถเชฐเชคเซ‹ เช…เชจเซเชธเชพเชฐ, เช…เชฎเชจเซ‡ เชเชฟเชฎเซเชฌเซเชฐเชพ OSE เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เชœเซ‡เชฎเชพเช‚ เชฌเซ‡ เชเชฟเชฎเซเชฌเซเชฐเชพ เชชเซเชฐเซ‹เช•เซเชธเซ€, เชฌเซ‡ LDAP เช…เชจเซ‡ LDAP เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟ เชธเชฐเซเชตเชฐเซเชธ เช›เซ‡, เชฆเชฐเซ‡เช• 1000 เชฎเซ‡เชˆเชฒเชฌเซ‹เช•เซเชธ เช…เชจเซ‡ เชคเซเชฐเชฃ MTAs เชธเชพเชฅเซ‡ เชšเชพเชฐ เชฎเซ‡เชˆเชฒ เชธเซเชŸเซ‹เชฐเซ‡เชœ เช›เซ‡. เช†เชชเซ‡เชฒ เช›เซ‡ เช•เซ‡ เช…เชฎเซ‡ เชฎเซ‡เช‡เชฒ เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช, เชคเซ‡ เชคเซเชฐเชฃ เชชเซเชฐเช•เชพเชฐเชจเชพ เชŸเซเชฐเชพเชซเชฟเช• เชชเซเชฐเชพเชชเซเชค เช•เชฐเชถเซ‡ เชœเซ‡เชจเซ‡ เชธเช‚เชคเซเชฒเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡: เชตเซ‡เชฌ เช•เซเชฒเชพเชฏเช‚เชŸ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ HTTP, เชคเซ‡เชฎเชœ เช‡เชฎเซ‡เช‡เชฒ เชฎเซ‹เช•เชฒเชตเชพ เชฎเชพเชŸเซ‡ POP เช…เชจเซ‡ SMTP. เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, HTTP เชŸเซเชฐเชพเชซเชฟเช• 192.168.0.57 เช…เชจเซ‡ 192.168.0.58 IP เชธเชฐเชจเชพเชฎเชพเช‚เชตเชพเชณเชพ เชเชฟเชฎเซเชฌเซเชฐเชพ เชชเซเชฐเซ‹เช•เซเชธเซ€ เชธเชฐเซเชตเชฐเซเชธ เชชเชฐ เชœเชถเซ‡ เช…เชจเซ‡ SMTP เชŸเซเชฐเชพเชซเชฟเช• 192.168.0.77 เช…เชจเซ‡ 192.168.0.78 IP เชธเชฐเชจเชพเชฎเชพเช‚เชตเชพเชณเชพ MTA เชธเชฐเซเชตเชฐเซเชธ เชชเชฐ เชœเชถเซ‡.

เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซเชฏเซ‹ เช›เซ‡ เชคเซ‡เชฎ, เชตเชฟเชจเช‚เชคเซ€เช“ เชธเชฐเซเชตเชฐเซเชธ เชตเชšเซเชšเซ‡ เชธเชฎเชพเชจเชฐเซ‚เชชเซ‡ เชตเชฟเชคเชฐเชฟเชค เชฅเชพเชฏ เช›เซ‡ เชคเซ‡เชจเซ€ เช–เชพเชคเชฐเซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ HAProxy เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถเซเช‚, เชœเซ‡ เช‰เชฌเซเชจเซเชŸเซ 18.04 เชชเชฐ เชšเชพเชฒเชคเชพ เชเชฟเชฎเซเชฌเซเชฐเชพ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เช‡เชจเซเช—เซเชฐเซ‡เชธ เชจเซ‹เชก เชชเชฐ เชšเชพเชฒเชถเซ‡. เช† เช“เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ เชชเชฐ เชนเซ‡เชชเซเชฐเซ‹เช•เซเชธเซ€ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชจเซเช‚ เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ sudo apt-get install haproxy. เช† เชชเช›เซ€ เชคเชฎเชพเชฐเซ‡ เชซเชพเช‡เชฒเชฎเชพเช‚ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡ /etc/default/haproxy เชชเชฐเชฟเชฎเชพเชฃ เชฌเชฆเชฒเซ‹ เชธเช•เซเชทเชฎ=0 เชชเชฐ เชธเช•เซเชทเชฎ=1. เชนเชตเซ‡, เชนเซ‡เชชเซเชฐเซ‹เช•เซเชธเซ€ เช•เชพเชฎ เช•เชฐเซ€ เชฐเชนเซ€ เช›เซ‡ เชคเซ‡เชจเซ€ เช–เชพเชคเชฐเซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชซเช•เซเชค เช†เชฆเซ‡เชถ เชฆเชพเช–เชฒ เช•เชฐเซ‹ เชธเซ‡เชตเชพ เชนเซ‡เชชเซเชฐเซ‹เช•เซเชธเซ€. เชœเซ‹ เช† เชธเซ‡เชตเชพ เชšเชพเชฒเซ€ เชฐเชนเซ€ เชนเซ‹เชฏ, เชคเซ‹ เช† เช†เชฆเซ‡เชถเชจเชพ เช†เช‰เชŸเชชเซเชŸ เชชเชฐเชฅเซ€ เชธเซเชชเชทเซเชŸ เชฅเชถเซ‡.

HAProxy เชจเซ‹ เชเช• เชฎเซเช–เซเชฏ เช—เซ‡เชฐเชซเชพเชฏเชฆเซ‹ เช เช›เซ‡ เช•เซ‡ เชกเชฟเชซเซ‰เชฒเซเชŸ เชฐเซ‚เชชเซ‡ เชคเซ‡ เช•เชจเซ‡เช•เซเชŸเชฟเช‚เช— เช•เซเชฒเชพเชฏเช‚เชŸเชจเซเช‚ IP เชธเชฐเชจเชพเชฎเซเช‚ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชŸ เช•เชฐเชคเซเช‚ เชจเชฅเซ€, เชคเซ‡เชจเซ‡ เชคเซ‡เชจเซ€ เชชเซ‹เชคเชพเชจเซ€ เชธเชพเชฅเซ‡ เชฌเชฆเชฒเซ€เชจเซ‡. เช†เชจเชพเชฅเซ€ เชเชตเซ€ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช“ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡ เช•เซ‡ เชœเซเชฏเชพเช‚ เชนเซเชฎเชฒเชพเช–เซ‹เชฐเซ‹ เชฆเซเชตเชพเชฐเชพ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒเซ€ เชˆเชฎเซ‡เชฒเชจเซ‡ เชฌเซเชฒเซ‡เช•เชฒเชฟเชธเซเชŸเชฎเชพเช‚ เช‰เชฎเซ‡เชฐเชตเชพ เชฎเชพเชŸเซ‡ IP เชเชกเซเชฐเซ‡เชธ เชฆเซเชตเชพเชฐเชพ เช“เชณเช–เซ€ เชถเช•เชพเชคเซ€ เชจเชฅเซ€. เชœเซ‹ เช•เซ‡, เช† เชธเชฎเชธเซเชฏเชพ เช‰เช•เซ‡เชฒเซ€ เชถเช•เชพเชฏ เช›เซ‡. เช† เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซ‡ เชซเชพเช‡เชฒเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ /opt/zimbra/common/conf/master.cf.in เชชเซ‹เชธเซเชŸเชซเชฟเช•เซเชธ เชธเชพเชฅเซ‡ เชธเชฐเซเชตเชฐเซเชธ เชชเชฐ เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚ เชจเซ€เชšเซ‡เชจเซ€ เชฒเซ€เชŸเซ€เช“ เช‰เชฎเซ‡เชฐเซ‹:

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 เชคเชฐเชซเชฅเซ€ เช‡เชจเช•เชฎเชฟเช‚เช— เชŸเซเชฐเชพเชซเชฟเช• เชชเซเชฐเชพเชชเซเชค เช•เชฐเชถเซ‡. เชซเชพเช‡เชฒเซ‹ เชธเชพเชšเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชชเช›เซ€, เชคเชฎเชพเชฐเซ‡ zmmtactl เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฌเชงเชพ เชธเชฐเซเชตเชฐเซเชธ เชชเชฐ เชชเซ‹เชธเซเชŸเชซเชฟเช•เซเชธ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช.

เชคเซ‡ เชชเช›เซ€, เชšเชพเชฒเซ‹ 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 เช•เชจเซ‡เช•เซเชถเชจเซเชธ เช…เชจเซ‡ เชฎเซ‡เช‡เชฒ เชฎเชพเชŸเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซ‹ เชคเซ‡ เช…เชฎเชพเชฐเชพ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชฎเชพเช‚ เช‰เชชเชฒเชฌเซเชง MTAs เชชเชฐ เช•เชจเซ‡เช•เซเชถเชจเซเชธ เชซเซ‹เชฐเชตเชฐเซเชก เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช…เชฐเซเชฅเชชเซ‚เชฐเซเชฃ เช›เซ‡. เชœเซ‹ เช•เชจเซ‡เช•เซเชถเชจ เชชเซ‹เชฐเซเชŸ 80 เชชเชฐ เช›เซ‡, เชคเซ‹ เช† เชเช• HTTP เชตเชฟเชจเช‚เชคเซ€ เช›เซ‡ เชœเซ‡เชจเซ‡ เชเชฟเชฎเซเชฌเซเชฐเชพ เชชเซเชฐเซ‹เช•เซเชธเซ€เชจเซ‡ เชซเซ‹เชฐเชตเชฐเซเชก เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เชชเซ‹เชฐเซเชŸ 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 เชชเชฐ เชซเซ‹เชฐเชตเชฐเซเชก เช•เชฐเชตเชพเชจเชพ เชจเชฟเชฏเชฎเซ‹เชฎเชพเช‚, เชคเซ‡เชฎเชจเชพ เชธเชฐเชจเชพเชฎเชพเชจเซ€ เชฌเชพเชœเซเชฎเชพเช‚ เชเช• เชชเชฐเชฟเชฎเชพเชฃ เช›เซ‡ เชฎเซ‹เช•เชฒเซ‹-เชชเซเชฐเซ‹เช•เซเชธเซ€. เช† เชœเชฐเซ‚เชฐเซ€ เช›เซ‡ เชœเซ‡เชฅเซ€ เช…เชฎเซ‡ เชชเซ‹เชธเซเชŸเชซเชฟเช•เซเชธ เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชฎเชพเช‚ เช…เช—เชพเช‰ เช•เชฐเซ‡เชฒเชพ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‡ เช…เชจเซเชฐเซ‚เชช, เชคเซ‡เชจเชพ เชชเซเชฐเซ‡เชทเช•เชจเซเช‚ เชฎเซ‚เชณ IP เชธเชฐเชจเชพเชฎเซเช‚ TCP เชชเซ‡เช•เซ‡เชŸเซ‹ เชธเชพเชฅเซ‡ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ‡.

เชนเชตเซ‡ เชœเซเชฏเชพเชฐเซ‡ HAProxy เชฎเชพเช‚ เชคเชฎเชพเชฎ เชœเชฐเซ‚เชฐเซ€ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡, เชคเชฎเซ‡ เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเซ‡เชตเชพเชจเซ‡ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เชธเซ‡เชตเชพ เชนเซ‡เชชเซเชฐเซ‹เช•เซเชธเซ€ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซ‹ เช…เชจเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ‹.

Zextras Suite เชฅเซ€ เชธเช‚เชฌเช‚เชงเชฟเชค เชคเชฎเชพเชฎ เชชเซเชฐเชถเซเชจเซ‹ เชฎเชพเชŸเซ‡, เชคเชฎเซ‡ เชˆ-เชฎเซ‡เชฒ เชฆเซเชตเชพเชฐเชพ Zextras Ekaterina Triandafilidi เชจเชพ เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเชจเซ‹ เชธเช‚เชชเชฐเซเช• เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ [เช‡เชฎเซ‡เช‡เชฒ เชธเซเชฐเช•เซเชทเชฟเชค]

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹