HAProxy භාවිතයෙන් Zimbra විවෘත-මූලාශ්‍ර සංස්කරණයේ සමබර කිරීම පැටවීම

මහා පරිමාණ සිම්බ්‍රා ඕඑස්ඊ යටිතල ව්‍යුහයන් තැනීමේදී ප්‍රධාන කාර්යයක් වන්නේ නිසි බර සමතුලිත කිරීමයි. එය සේවාවේ වැරදි ඉවසීම වැඩි කරයි යන කාරණයට අමතරව, බර සමතුලිතතාවයකින් තොරව සියලුම පරිශීලකයින් සඳහා සේවාවේ එකම ප්‍රතිචාරය සහතික කළ නොහැක. මෙම ගැටළුව විසඳීම සඳහා, load balancers භාවිතා කරනු ලැබේ - සේවාදායකයන් අතර ඉල්ලීම් නැවත බෙදා හරින මෘදුකාංග සහ දෘඪාංග විසඳුම්. ඒවා අතර RoundRobin වැනි තරමක් ප්‍රාථමික ඒවා ඇත, එය ලැයිස්තුවේ ඊළඟ සේවාදායකයට එක් එක් ඉල්ලීම සරලව යවන අතර වඩාත් දියුණු ඒවා ද ඇත, උදාහරණයක් ලෙස HAProxy, එය අධික බර පරිගණක යටිතල ව්‍යුහයන්හි බහුලව භාවිතා වේ. සැලකිය යුතු වාසි ගණනාවක්. ඔබට HAProxy load balancer සහ Zimbra OSE එකට ක්‍රියා කරන්නේ කෙසේදැයි බලමු.

HAProxy භාවිතයෙන් Zimbra විවෘත-මූලාශ්‍ර සංස්කරණයේ සමබර කිරීම පැටවීම

එබැවින්, කාර්යයේ නියමයන්ට අනුව, අපට Zimbra OSE යටිතල පහසුකම් ලබා දී ඇත, එහි Zimbra Proxy දෙකක්, LDAP සහ LDAP Replica සේවාදායකයන් දෙකක්, තැපැල් පෙට්ටි 1000 බැගින් සහිත තැපැල් ගබඩා හතරක් සහ MTA තුනක් ඇත. අපි තැපැල් සේවාදායකයක් සමඟ ගනුදෙනු කරන බැවින්, සමතුලිත කිරීම අවශ්‍ය ගමනාගමන වර්ග තුනක් එයට ලැබෙනු ඇත: වෙබ් සේවාදායකයා බාගත කිරීම සඳහා HTTP, මෙන්ම විද්‍යුත් තැපෑල යැවීම සඳහා POP සහ SMTP. මෙම අවස්ථාවේදී, HTTP ගමනාගමනය IP ලිපින 192.168.0.57 සහ 192.168.0.58 සහිත Zimbra Proxy සේවාදායකයන් වෙත යන අතර SMTP ගමනාගමනය IP ලිපින 192.168.0.77 සහ 192.168.0.78 සහිත MTA සේවාදායකයන් වෙත යයි.

දැනටමත් සඳහන් කර ඇති පරිදි, සේවාදායකයන් අතර ඉල්ලීම් ඒකාකාරව බෙදා හැරීම සහතික කිරීම සඳහා, අපි Ubuntu 18.04 ධාවනය වන Zimbra යටිතල පහසුකම් ඇතුල්වීමේ නෝඩය මත ධාවනය වන HAProxy load balancer භාවිතා කරන්නෙමු. මෙම මෙහෙයුම් පද්ධතියේ haproxy ස්ථාපනය කිරීම විධානය භාවිතයෙන් සිදු කෙරේ sudo apt-get install haproxy. මෙයින් පසු ඔබට ගොනුවේ අවශ්ය වේ /etc/default/haproxy පරාමිතිය වෙනස් කරන්න සක්රීය = 0 මත සක්රීය = 1. දැන්, haproxy ක්‍රියා කරන බව තහවුරු කර ගැනීම සඳහා, විධානය ඇතුළත් කරන්න සේවා 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

මේ නිසා, අපි HAProxy වෙතින් එන ගමනාගමනය ලබන 26, 466 සහ 588 වරායන් විවෘත කරන්නෙමු. ගොනු සුරැකීමෙන් පසුව, ඔබ zmmtactl නැවත ආරම්භ කිරීමේ විධානය භාවිතයෙන් සියලුම සේවාදායකයන් මත Postfix නැවත ආරම්භ කළ යුතුය.

ඊට පසු, අපි 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 හි මෙහෙයුම් ආකාරය ද සකසයි. අපගේ නඩුවේදී, load balancer TCP මාදිලියේ ක්රියාත්මක වේ, එනම්, TCP පැකට් ඒවායේ අන්තර්ගතය විශ්ලේෂණය නොකර සරලව සම්ප්රේෂණය කරයි.

ඊළඟට අපි විවිධ වරායන්හි සම්බන්ධතා සඳහා නීති එකතු කරන්නෙමු. උදාහරණයක් ලෙස, වරාය 25 SMTP සම්බන්ධතා සහ තැපෑල සඳහා භාවිතා කරන්නේ නම්, අපගේ යටිතල පහසුකම්වල ඇති MTA වෙත සම්බන්ධතා යොමු කිරීම අර්ථවත් කරයි. සම්බන්ධතාවය port 80 මත නම්, මෙය Zimbra Proxy වෙත යොමු කළ යුතු 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 වෙත යොමු කිරීම සඳහා වන රීති වල, ඔවුන්ගේ ලිපිනයන් අසල පරාමිතියක් ඇති බව කරුණාවෙන් සලකන්න. send-proxy. මෙය අවශ්‍ය වන්නේ, අප කලින් Postfix සැකසුම් වලට සිදු කළ වෙනස්කම් වලට අනුව, එය යවන්නාගේ මුල් IP ලිපිනය TCP පැකට් සමඟ යවනු ලැබේ.

දැන් HAProxy වෙත අවශ්‍ය සියලුම වෙනස්කම් සිදු කර ඇති බැවින්, ඔබට විධානය භාවිතයෙන් සේවාව නැවත ආරම්භ කළ හැක සේවාව haproxy නැවත ආරම්භ කිරීම සහ එය භාවිතා කිරීමට පටන් ගන්න.

Zextras Suite සම්බන්ධ සියලුම ප්‍රශ්න සඳහා, ඔබට විද්‍යුත් තැපෑලෙන් Zextras Ekaterina Triandafilidi හි නියෝජිතයා සම්බන්ධ කර ගත හැක. [විද්‍යුත් ආරක්‍ෂිත]

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න