HAProxy ஐப் பயன்படுத்தி ஜிம்ப்ரா ஓப்பன் சோர்ஸ் பதிப்பில் சமநிலையை ஏற்றவும்

பெரிய அளவிலான ஜிம்ப்ரா OSE உள்கட்டமைப்புகளை உருவாக்கும் போது முக்கிய பணிகளில் ஒன்று சரியான சுமை சமநிலை ஆகும். இது சேவையின் தவறு சகிப்புத்தன்மையை அதிகரிக்கிறது என்ற உண்மையைத் தவிர, சுமை சமநிலை இல்லாமல், அனைத்து பயனர்களுக்கும் சேவையின் அதே பதிலளிப்பதை உறுதி செய்வது சாத்தியமில்லை. இந்தச் சிக்கலைத் தீர்க்க, சுமை பேலன்சர்கள் பயன்படுத்தப்படுகின்றன - சேவையகங்களுக்கு இடையே கோரிக்கைகளை மறுபகிர்வு செய்யும் மென்பொருள் மற்றும் வன்பொருள் தீர்வுகள். அவற்றில் ரவுண்ட்ராபின் போன்ற மிகவும் பழமையானவை உள்ளன, அவை ஒவ்வொரு அடுத்தடுத்த கோரிக்கையையும் பட்டியலில் உள்ள அடுத்த சேவையகத்திற்கு அனுப்புகின்றன, மேலும் மேம்பட்டவைகளும் உள்ளன, எடுத்துக்காட்டாக HAProxy, இது அதிக சுமை கொண்ட கணினி உள்கட்டமைப்புகளில் பரவலாகப் பயன்படுத்தப்படுகிறது. குறிப்பிடத்தக்க நன்மைகளின் எண்ணிக்கை. HAProxy load balancer மற்றும் Zimbra OSE ஆகியவற்றை நீங்கள் எவ்வாறு ஒன்றாகச் செயல்பட வைக்கலாம் என்பதைப் பார்ப்போம்.

HAProxy ஐப் பயன்படுத்தி ஜிம்ப்ரா ஓப்பன் சோர்ஸ் பதிப்பில் சமநிலையை ஏற்றவும்

எனவே, பணியின் விதிமுறைகளின்படி, இரண்டு ஜிம்ப்ரா ப்ராக்ஸி, இரண்டு எல்டிஏபி மற்றும் எல்டிஏபி ரெப்ளிகா சர்வர்கள், தலா 1000 அஞ்சல் பெட்டிகள் மற்றும் மூன்று எம்டிஏக்கள் கொண்ட நான்கு அஞ்சல் சேமிப்பகங்களைக் கொண்ட ஜிம்ப்ரா ஓஎஸ்இ உள்கட்டமைப்பு எங்களுக்கு வழங்கப்படுகிறது. நாங்கள் ஒரு அஞ்சல் சேவையகத்தைக் கையாள்வதால், அது சமநிலைப்படுத்த வேண்டிய மூன்று வகையான போக்குவரத்தைப் பெறும்: வலை கிளையண்டைப் பதிவிறக்குவதற்கு HTTP, அத்துடன் மின்னஞ்சல் அனுப்புவதற்கு POP மற்றும் SMTP. இந்த வழக்கில், HTTP ட்ராஃபிக் 192.168.0.57 மற்றும் 192.168.0.58 ஐபி முகவரிகள் கொண்ட ஜிம்ப்ரா ப்ராக்ஸி சேவையகங்களுக்குச் செல்லும், மேலும் SMTP ட்ராஃபிக் IP முகவரிகள் 192.168.0.77 மற்றும் 192.168.0.78 கொண்ட MTA சேவையகங்களுக்குச் செல்லும்.

ஏற்கனவே குறிப்பிட்டுள்ளபடி, சேவையகங்களுக்கிடையில் கோரிக்கைகள் சமமாக விநியோகிக்கப்படுவதை உறுதிசெய்ய, நாங்கள் HAProxy லோட் பேலன்சரைப் பயன்படுத்துவோம், இது உபுண்டு 18.04 இல் இயங்கும் ஜிம்ப்ரா உள்கட்டமைப்பு நுழைவு முனையில் இயங்கும். இந்த இயக்க முறைமையில் ஹாப்ராக்ஸியை நிறுவுவது கட்டளையைப் பயன்படுத்தி செய்யப்படுகிறது sudo apt-get install haproxy. இதற்குப் பிறகு நீங்கள் கோப்பில் வேண்டும் /etc/default/haproxy அளவுருவை மாற்றவும் இயக்கப்பட்டது=0 மீது இயக்கப்பட்டது=1. இப்போது, ​​ஹாப்ராக்ஸி செயல்படுகிறதா என்பதை உறுதிப்படுத்த, கட்டளையை உள்ளிடவும் சேவை ஹாப்ராக்ஸி. இந்த சேவை இயங்கினால், கட்டளையின் வெளியீட்டில் இருந்து இது தெளிவாக இருக்கும்.

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 இலிருந்து உள்வரும் போக்குவரத்தைப் பெறும். கோப்புகள் சேமிக்கப்பட்ட பிறகு, 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 இன் இயக்க முறைமையையும் அமைக்கிறது. எங்கள் விஷயத்தில், சுமை சமநிலை TCP பயன்முறையில் இயங்குகிறது, அதாவது, TCP பாக்கெட்டுகளை அவற்றின் உள்ளடக்கங்களை பகுப்பாய்வு செய்யாமல் வெறுமனே அனுப்புகிறது.

அடுத்து பல்வேறு துறைமுகங்களில் இணைப்புகளுக்கான விதிகளைச் சேர்ப்போம். எடுத்துக்காட்டாக, SMTP இணைப்புகள் மற்றும் மின்னஞ்சலுக்கு போர்ட் 25 பயன்படுத்தப்பட்டால், எங்கள் உள்கட்டமைப்பில் கிடைக்கும் MTAகளுக்கு இணைப்புகளை அனுப்புவது அர்த்தமுள்ளதாக இருக்கும். இணைப்பு போர்ட் 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 க்கு அனுப்புவதற்கான விதிகளில், அவற்றின் முகவரிகளுக்கு அடுத்ததாக ஒரு அளவுரு உள்ளது என்பதை நினைவில் கொள்ளவும். அனுப்பு-ப்ராக்ஸி. போஸ்ட்ஃபிக்ஸ் அமைப்புகளில் நாம் முன்பு செய்த மாற்றங்களுக்கு ஏற்ப, அதன் அனுப்புநரின் அசல் ஐபி முகவரி TCP பாக்கெட்டுகளுடன் அனுப்பப்படுவதற்கு இது அவசியம்.

இப்போது HAProxy இல் தேவையான அனைத்து மாற்றங்களும் செய்யப்பட்டுள்ளன, நீங்கள் கட்டளையைப் பயன்படுத்தி சேவையை மறுதொடக்கம் செய்யலாம் சேவை ஹாப்ராக்ஸி மறுதொடக்கம் மற்றும் அதைப் பயன்படுத்தத் தொடங்குங்கள்.

Zextras Suite தொடர்பான அனைத்து கேள்விகளுக்கும், நீங்கள் Zextras Ekaterina Triandafilidi இன் பிரதிநிதியை மின்னஞ்சல் மூலம் தொடர்பு கொள்ளலாம் [மின்னஞ்சல் பாதுகாக்கப்பட்டது]

ஆதாரம்: www.habr.com

கருத்தைச் சேர்