د HAProxy په کارولو سره د زیمبرا خلاصې سرچینې نسخه کې د بار توازن کول

یو له اصلي کارونو څخه کله چې د لوی پیمانه زیمبرا OSE زیربنا رامینځته کوي د بار بار مناسب توازن دی. د دې حقیقت سربیره چې دا د خدماتو غلطۍ زغم زیاتوي ، د بار توازن پرته د ټولو کاروونکو لپاره د خدماتو ورته ځواب ویلو ډاډ ترلاسه کول ناممکن دي. د دې ستونزې د حل کولو لپاره، د بار بار بیلنسونه کارول کیږي - سافټویر او هارډویر حلونه چې د سرورونو ترمنځ غوښتنې بیا توزیع کوي. د دوی په مینځ کې خورا لومړني شتون لري ، لکه راؤنډروبین ، کوم چې په ساده ډول هره ورپسې غوښتنه په لیست کې راتلونکي سرور ته لیږي ، او نور پرمختللي هم شتون لري ، د مثال په توګه HAProxy ، کوم چې په پراخه کچه د لوړ بار کمپیوټري زیربنا کې کارول کیږي. د پام وړ ګټو شمیر. راځئ چې یو نظر وګورو چې تاسو څنګه کولی شئ د HAProxy بار بیلانسر او زیمبرا OSE یوځای کار وکړئ.

د HAProxy په کارولو سره د زیمبرا خلاصې سرچینې نسخه کې د بار توازن کول

نو، د دندې د شرایطو سره سم، موږ ته د زیمبرا OSE زیربنا راکړل شوې، چې دوه زمبرا پراکسي، دوه LDAP او LDAP ریپلیکا سرورونه لري، څلور میل ذخیرهونه د 1000 میل باکسونو سره هر یو او درې MTAs. د دې په پام کې نیولو سره چې موږ د میل سرور سره معامله کوو، دا به درې ډوله ټرافیک ترلاسه کړي چې توازن ته اړتیا لري: د ویب پیرودونکي ډاونلوډ کولو لپاره HTTP، او همدارنګه د بریښنالیک لیږلو لپاره POP او SMTP. په دې حالت کې، د HTTP ټرافيک به د 192.168.0.57 او 192.168.0.58 IP پتې سره د Zimbra پراکسي سرورونو ته لاړ شي، او د 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. که دا خدمت روان وي، دا به د کمانډ له محصول څخه روښانه شي.

د 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

مهرباني وکړئ په یاد ولرئ چې MTA ته د TCP پاکټونو لیږلو لپاره مقرراتو کې ، د دوی پتې ته نږدې یو پیرامیټر شتون لري لیږل - پراکسي. دا اړینه ده چې د هغه بدلونونو سره سم چې موږ مخکې د پوسټ فکس ترتیباتو کې کړي وو، د دې لیږونکي اصلي IP پته د TCP پاکټونو سره لیږل کیږي.

اوس چې په HAProxy کې ټول اړین بدلونونه رامینځته شوي ، تاسو کولی شئ د کمانډ په کارولو سره خدمت بیا پیل کړئ خدمت haproxy بیا پیل کول او د هغې کارول پیل کړئ.

د Zextras Suite په اړه د ټولو پوښتنو لپاره، تاسو کولی شئ د بریښنالیک له لارې د Zextras استازې Ekaterina Triandafilidi سره اړیکه ونیسئ [ایمیل خوندي شوی]

سرچینه: www.habr.com

Add a comment