Balanse chaj nan Zimbra Open-Source Edition lè l sèvi avèk HAProxy

Youn nan travay prensipal yo lè bati gwo echèl enfrastrikti Zimbra OSE se balanse chaj apwopriye. Anplis de sa nan lefèt ke li ogmante tolerans nan fay nan sèvis la, san yo pa balanse chaj li enposib asire menm repons nan sèvis la pou tout itilizatè yo. Yo nan lòd yo rezoud pwoblèm sa a, balanse chaj yo itilize - solisyon lojisyèl ak pyès ki nan konpitè ki redistribiye demann ant serveurs. Pami yo gen sa ki byen primitif, tankou RoundRobin, ki tou senpleman voye chak demann ki vin apre nan pwochen sèvè a nan lis la, epi gen tou sa ki pi avanse, pou egzanp HAProxy, ki se lajman ki itilize nan enfrastrikti enfòmatik gwo chaj akòz yon kantite avantaj enpòtan. Ann pran yon gade nan ki jan ou ka fè balans lan chaj HAProxy ak Zimbra OSE travay ansanm.

Balanse chaj nan Zimbra Open-Source Edition lè l sèvi avèk HAProxy

Donk, dapre kondisyon travay la, yo ba nou enfrastrikti Zimbra OSE, ki gen de Zimbra Proxy, de LDAP ak LDAP Replica sèvè, kat depo lapòs ak 1000 bwat lèt chak ak twa MTA. Etandone ke nou ap fè fas ak yon sèvè lapòs, li pral resevwa twa kalite trafik ki bezwen balanse: HTTP pou telechaje kliyan entènèt la, osi byen ke POP ak SMTP pou voye imèl. Nan ka sa a, trafik HTTP pral ale nan sèvè Zimbra Proxy ak adrès IP 192.168.0.57 ak 192.168.0.58, ak trafik SMTP pral ale nan sèvè MTA ak adrès IP 192.168.0.77 ak 192.168.0.78.

Kòm deja mansyone, asire ke demann yo distribye respire ant sèvè yo, nou pral sèvi ak balans chaj la HAProxy, ki pral kouri sou ne enfrastrikti Zimbra antre nan kouri Ubuntu 18.04. Enstale haproxy sou sistèm operasyon sa a fèt lè l sèvi avèk lòd la sudo apt-get install haproxy. Apre sa ou bezwen nan dosye a /etc/default/haproxy chanje paramèt ACTIVE=0 sou ACTIVE=1. Koulye a, yo nan lòd yo asire w ke haproxy ap travay, jis antre nan lòd la sèvis haproxy. Si sèvis sa a ap kouri, sa a pral klè nan pwodiksyon an nan lòd la.

Youn nan dezavantaj prensipal yo nan HAProxy se ke pa default li pa transmèt adrès la IP nan kliyan an konekte, ranplase li ak pwòp li yo. Sa a ka mennen nan sitiyasyon kote imel ki voye pa atakè pa ka idantifye pa adrès IP yo nan lòd yo ajoute li nan lis nwa a. Sepandan, pwoblèm sa a ka rezoud. Pou fè sa ou bezwen edite fichye a /opt/zimbra/common/conf/master.cf.in sou sèvè ak Postfix epi ajoute liy sa yo nan li:

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

Akòz sa, nou pral louvri pò 26, 466 ak 588, ki pral resevwa trafik k ap rantre nan HAProxy. Apre yo fin sove dosye yo, ou ta dwe rekòmanse Postfix sou tout sèvè lè l sèvi avèk lòd rekòmanse zmmtactl la.

Apre sa, ann kòmanse mete kanpe HAProxy. Pou fè sa, premye kreye yon kopi backup nan dosye a anviwònman cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak. Lè sa a, louvri dosye sous la nan yon editè tèks /etc/haproxy/haproxy.cfg epi kòmanse ajoute anviwònman ki nesesè yo nan li etap pa etap. Premye blòk la pral ajoute yon sèvè ki pran mòso bwa, fikse kantite maksimòm ki pèmèt koneksyon similtane, osi byen ke espesifye non an ak gwoup itilizatè a ki pral egzekite pwosesis la.

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

Figi a nan 5000 koneksyon similtane parèt pou yon rezon. Piske nou gen 4000 bwat lèt nan enfrastrikti nou an, nou bezwen konsidere posiblite pou yo tout jwenn aksè nan imel travay yo an menm tan. Anplis de sa, li nesesè kite yon ti rezèv si kantite yo ogmante.

Koulye a, ann ajoute yon blòk ak anviwònman default:

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

Blòk sa a fikse delè maksimòm pou kliyan an ak sèvè fèmen koneksyon an lè li ekspire, epi tou li mete mòd fonksyone HAProxy. Nan ka nou an, balans chaj la opere nan mòd TCP, se sa ki, li tou senpleman transmèt pake TCP san yo pa analize sa yo.

Apre sa, nou pral ajoute règ pou koneksyon sou pò divès kalite. Pa egzanp, si yo itilize pò 25 pou koneksyon SMTP ak lapòs, lè sa a li gen sans pou voye koneksyon ak li bay MTA ki disponib nan enfrastrikti nou an. Si koneksyon an se sou pò 80, Lè sa a, sa a se yon demann http ki bezwen voye bay Zimbra Proxy.

Règ pou pò 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

Règ pou pò 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

Règ pou pò 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

Règ pou pò 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

Règ pou pò 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

Tanpri sonje ke nan règ yo pou voye pakè TCP bay MTA a, akote adrès yo gen yon paramèt. voye-proxy. Sa nesesè pou, an akò ak chanjman nou te fè pi bonè nan paramèt Postfix yo, yo voye adrès IP orijinal moun k ap voye li yo ansanm ak pakè TCP yo.

Kounye a ke tout chanjman ki nesesè yo te fè nan HAProxy, ou ka rekòmanse sèvis la lè l sèvi avèk lòd la rekòmanse sèvis haproxy epi kòmanse sèvi ak li.

Pou tout kesyon ki gen rapò ak Zextras Suite, ou ka kontakte Reprezantan Zextras Ekaterina Triandafilidi pa imel. [imèl pwoteje]

Sous: www.habr.com

Add nouvo kòmantè