இக்கட்டுரையின் மொழியாக்கம் பாடநெறி தொடங்கும் தினத்தன்று தயாரிக்கப்பட்டது
சுமை சமநிலை என்பது பல ஹோஸ்ட்களில் இணைய பயன்பாடுகளை கிடைமட்டமாக அளவிடுவதற்கான பொதுவான தீர்வாகும், அதே நேரத்தில் பயனர்களுக்கு சேவைக்கான அணுகல் புள்ளியை வழங்குகிறது.
HAProxy வள பயன்பாட்டை மேம்படுத்தவும், செயல்திறனை அதிகரிக்கவும், மறுமொழி நேரத்தைக் குறைக்கவும் மற்றும் எந்தவொரு தனிப்பட்ட வளத்தையும் ஓவர்லோட் செய்வதைத் தவிர்க்கவும் பாடுபடுகிறது. இது CentOS 8 போன்ற பல்வேறு Linux விநியோகங்களில் நிறுவப்படலாம், இந்த வழிகாட்டி மற்றும் கணினிகளில் நாம் கவனம் செலுத்துவோம்
HAProxy மிகவும் அதிக ட்ராஃபிக்கைக் கொண்ட வலைத்தளங்களுக்கு மிகவும் பொருத்தமானது, எனவே மல்டி-சர்வர் இணைய சேவை உள்ளமைவுகளின் நம்பகத்தன்மை மற்றும் செயல்திறனை மேம்படுத்த பெரும்பாலும் பயன்படுத்தப்படுகிறது. CentOS 8 கிளவுட் ஹோஸ்டில் HAProxyஐ ஒரு லோட் பேலன்சராக அமைப்பதற்கான படிகளை இந்த வழிகாட்டி கோடிட்டுக் காட்டுகிறது, இது உங்கள் இணையச் சேவையகங்களுக்கு போக்குவரத்தை வழிநடத்துகிறது.
சிறந்த முடிவுகளுக்கு ஒரு முன்நிபந்தனையாக, உங்களிடம் குறைந்தது இரண்டு இணைய சேவையகங்கள் மற்றும் ஒரு சுமை சமநிலை சேவையகம் இருக்க வேண்டும். இணைய சேவையகங்களுக்கு இடையே சுமை சமநிலையை சோதிக்க, குறைந்தபட்சம் nginx அல்லது httpd போன்ற அடிப்படை இணைய சேவையையாவது இயக்க வேண்டும்.
CentOS 8 இல் HAProxy ஐ நிறுவுகிறது
HAProxy வேகமாக வளர்ந்து வரும் திறந்த மூலப் பயன்பாடாகும் என்பதால், நிலையான CentOS களஞ்சியங்களில் உங்களுக்குக் கிடைக்கும் விநியோகம் சமீபத்திய பதிப்பாக இருக்காது. தற்போதைய பதிப்பைக் கண்டறிய, பின்வரும் கட்டளையை இயக்கவும்:
sudo yum info haproxy
HAProxy எப்போதும் மூன்று நிலையான பதிப்புகளைத் தேர்வுசெய்ய வழங்குகிறது: இரண்டு மிக சமீபத்திய ஆதரிக்கப்படும் பதிப்புகள் மற்றும் மூன்றாவது, இன்னும் முக்கியமான புதுப்பிப்புகளைப் பெறும் பழைய பதிப்பு. HAProxy இணையதளத்தில் பட்டியலிடப்பட்டுள்ள சமீபத்திய நிலையான பதிப்பை நீங்கள் எப்போதும் சரிபார்த்து, எந்தப் பதிப்பில் வேலை செய்ய விரும்புகிறீர்கள் என்பதைத் தீர்மானிக்கலாம்.
இந்த வழிகாட்டியில், சமீபத்திய நிலையான பதிப்பு 2.0 ஐ நிறுவுவோம், இது வழிகாட்டியை எழுதும் போது நிலையான களஞ்சியங்களில் இன்னும் கிடைக்கவில்லை. நீங்கள் அதை அசல் மூலத்திலிருந்து நிறுவ வேண்டும். ஆனால் முதலில், நிரலை பதிவிறக்கம் செய்து தொகுக்க தேவையான நிபந்தனைகளை நீங்கள் சந்தித்தீர்களா என்று சரிபார்க்கவும்.
sudo yum install gcc pcre-devel tar make -y
கீழே உள்ள கட்டளையைப் பயன்படுத்தி மூலக் குறியீட்டைப் பதிவிறக்கவும். புதிய பதிப்பு கிடைக்கிறதா என்பதை நீங்கள் சரிபார்க்கலாம்
wget http://www.haproxy.org/download/2.0/src/haproxy-2.0.7.tar.gz -O ~/haproxy.tar.gz
பதிவிறக்கம் முடிந்ததும், கீழே உள்ள கட்டளையைப் பயன்படுத்தி கோப்புகளைப் பிரித்தெடுக்கவும்:
tar xzvf ~/haproxy.tar.gz -C ~/
தொகுக்கப்படாத மூல கோப்பகத்திற்குச் செல்லவும்:
cd ~/haproxy-2.0.7
பின்னர் உங்கள் கணினிக்கான நிரலை தொகுக்கவும்:
make TARGET=linux-glibc
இறுதியாக, HAProxy ஐ நிறுவவும்:
sudo make install
HAProxy இப்போது நிறுவப்பட்டுள்ளது, ஆனால் அதைச் செயல்படுத்த சில கூடுதல் கையாளுதல்கள் தேவை. கீழே உள்ள மென்பொருள் மற்றும் சேவைகளை அமைப்பதைத் தொடரலாம்.
உங்கள் சேவையகத்திற்கு HAProxy ஐ அமைக்கிறது
இப்போது HAProxy உள்ளீடுகளுக்கு பின்வரும் கோப்பகங்கள் மற்றும் புள்ளிவிவரக் கோப்பைச் சேர்க்கவும்:
sudo mkdir -p /etc/haproxy
sudo mkdir -p /var/lib/haproxy
sudo touch /var/lib/haproxy/stats
பைனரிகளுக்கான குறியீட்டு இணைப்பை உருவாக்கவும், இதன் மூலம் நீங்கள் வழக்கமான பயனராக HAProxy கட்டளைகளை இயக்கலாம்:
sudo ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
உங்கள் கணினியில் ப்ராக்ஸியை ஒரு சேவையாக சேர்க்க விரும்பினால், haproxy.init கோப்பை எடுத்துக்காட்டுகளிலிருந்து உங்கள் /etc/init.d கோப்பகத்திற்கு நகலெடுக்கவும். ஸ்கிரிப்ட் இயங்கும் வகையில் கோப்பு அனுமதிகளைத் திருத்தவும், பின்னர் systemd டீமானை மறுதொடக்கம் செய்யவும்:
sudo cp ~/haproxy-2.0.7/examples/haproxy.init /etc/init.d/haproxy
sudo chmod 755 /etc/init.d/haproxy
sudo systemctl daemon-reload
கணினி தொடங்கும் போது சேவையை தானாக மறுதொடக்கம் செய்ய நீங்கள் அனுமதிக்க வேண்டும்:
sudo chkconfig haproxy on
வசதிக்காக, HAProxy ஐ இயக்க புதிய பயனரைச் சேர்க்க பரிந்துரைக்கப்படுகிறது:
sudo useradd -r haproxy
இதற்குப் பிறகு, பின்வரும் கட்டளையைப் பயன்படுத்தி நிறுவப்பட்ட பதிப்பு எண்ணை மீண்டும் சரிபார்க்கலாம்:
haproxy -v
HA-Proxy version 2.0.7 2019/09/27 - https://haproxy.org/
எங்கள் விஷயத்தில், மேலே உள்ள எடுத்துக்காட்டு வெளியீட்டில் காட்டப்பட்டுள்ளபடி, பதிப்பு 2.0.7 ஆக இருக்க வேண்டும்.
இறுதியாக, CentOS 8 இல் உள்ள இயல்புநிலை ஃபயர்வால் இந்த திட்டத்திற்கு மிகவும் கட்டுப்படுத்தப்பட்டுள்ளது. தேவையான சேவைகளை அனுமதிக்க மற்றும் ஃபயர்வாலை மீட்டமைக்க பின்வரும் கட்டளைகளைப் பயன்படுத்தவும்:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-port=8181/tcp
sudo firewall-cmd --reload
ஏற்ற சமநிலை அமைப்பு
HAProxy ஐ அமைப்பது மிகவும் எளிமையான செயலாகும். முக்கியமாக, HAProxy எந்த இணைப்புகளை கேட்க வேண்டும், அவற்றை எங்கு ரிலே செய்ய வேண்டும் என்று கூறினால் போதும்.
அமைப்புகளை வரையறுக்கும் /etc/haproxy/haproxy.cfg என்ற உள்ளமைவு கோப்பை உருவாக்குவதன் மூலம் இது செய்யப்படுகிறது. HAProxy உள்ளமைவு விருப்பங்களைப் பற்றி நீங்கள் படிக்கலாம்
போக்குவரத்து அடுக்கில் ஏற்ற சமநிலை (அடுக்கு 4)
அடிப்படை அமைப்புடன் ஆரம்பிக்கலாம். ஒரு புதிய கட்டமைப்பு கோப்பை உருவாக்கவும், எடுத்துக்காட்டாக பயன்படுத்தவும் vi கீழே உள்ள கட்டளையுடன்:
sudo vi /etc/haproxy/haproxy.cfg
கோப்பில் பின்வரும் பிரிவுகளைச் சேர்க்கவும். மாற்றவும் சர்வருடனான புள்ளிவிவரங்கள் பக்கத்தில் உங்கள் சர்வர்களை என்ன அழைக்க வேண்டும், மற்றும் தனிப்பட்ட_ஐபி — நீங்கள் இணைய போக்குவரத்தை இயக்க விரும்பும் சேவையகங்களின் தனிப்பட்ட ஐபி முகவரிகள். நீங்கள் தனிப்பட்ட ஐபி முகவரிகளை சரிபார்க்கலாம்
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats timeout 30s
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
frontend http_front
bind *:80
stats uri /haproxy?stats
default_backend http_back
backend http_back
balance roundrobin
server server_name1 private_ip1:80 check
server server_name2 private_ip2:80 check
இது போர்ட் 4 இல் வெளிப்புறமாக http_front Lisinging என பெயரிடப்பட்ட ஒரு போக்குவரத்து லேயர் லோட் பேலன்சரை (லேயர் 80) வரையறுக்கிறது, இது http_back எனப்படும் இயல்புநிலை பின்தளத்திற்கு போக்குவரத்தை அனுப்புகிறது. கூடுதல் புள்ளி விவரங்கள் /haproxy?stats புள்ளி விவரங்கள் பக்கத்தை குறிப்பிட்ட முகவரியுடன் இணைக்கிறது.
பல்வேறு சுமை சமநிலை அல்காரிதம்கள்.
பின்தளத்தில் உள்ள சேவையகங்களைக் குறிப்பிடுவது HAProxy இந்த சேவையகங்களை ரவுண்ட்-ராபின் அல்காரிதத்தின் படி சுமை சமநிலைக்கு பயன்படுத்த அனுமதிக்கிறது.
ஒவ்வொரு இணைப்பும் பின்தளத்தில் எந்தச் சேவையகத்திற்கு அனுப்பப்படுகிறது என்பதைத் தீர்மானிக்க சமநிலை வழிமுறைகள் பயன்படுத்தப்படுகின்றன. சில பயனுள்ள விருப்பங்கள் இங்கே:
- ரவுண்ட்ரோபின்: ஒவ்வொரு சேவையகமும் அதன் எடைக்கு ஏற்ப பயன்படுத்தப்படுகிறது. சேவையகங்களின் செயலாக்க நேரம் சமமாக விநியோகிக்கப்படும் போது இது மிகவும் மென்மையான மற்றும் சிறந்த வழிமுறையாகும். இந்த அல்காரிதம் டைனமிக் ஆகும், இது சேவையகத்தின் எடையை பறக்கும்போது சரிசெய்ய அனுமதிக்கிறது.
- லீஸ்ட்கான்: குறைந்த இணைப்புகளைக் கொண்ட சேவையகம் தேர்ந்தெடுக்கப்பட்டது. ஒரே சுமையுடன் சேவையகங்களுக்கு இடையில் ரவுண்ட் ராபின் செய்யப்படுகிறது. LDAP, SQL, TSE போன்ற நீண்ட அமர்வுகளுக்கு இந்த அல்காரிதத்தைப் பயன்படுத்துவது பரிந்துரைக்கப்படுகிறது, ஆனால் HTTP போன்ற குறுகிய அமர்வுகளுக்கு இது மிகவும் பொருத்தமானது அல்ல.
- முதலாவது: கிடைக்கக்கூடிய இணைப்பு இடங்களைக் கொண்ட முதல் சேவையகம் இணைப்பைப் பெறுகிறது. சேவையகங்கள் மிகக் குறைந்த எண் ஐடியிலிருந்து உயர்ந்தவை வரை தேர்ந்தெடுக்கப்படுகின்றன, இது பண்ணையில் உள்ள சேவையகத்தின் நிலைக்கு இயல்புநிலையாக இருக்கும். ஒரு சர்வர் maxconn ஐ அடைந்ததும், அடுத்த சர்வர் பயன்படுத்தப்படும்.
- மூல: எந்த சேவையகம் கோரிக்கையைப் பெறும் என்பதைத் தீர்மானிக்க, மூல ஐபி முகவரி ஹாஷ் செய்யப்பட்டு இயங்கும் சேவையகங்களின் மொத்த எடையால் வகுக்கப்படுகிறது. இந்த வழியில், அதே கிளையன்ட் ஐபி முகவரி எப்போதும் ஒரே சேவையகத்திற்கு செல்லும், அதே நேரத்தில் சேவையகங்கள் ஒரே மாதிரியாக இருக்கும்.
பயன்பாட்டு மட்டத்தில் சுமை சமநிலையை அமைத்தல் (அடுக்கு 7)
கிடைக்கக்கூடிய மற்றொரு விருப்பமானது, பயன்பாட்டு லேயரில் (லேயர் 7) இயங்குவதற்கு ஏற்ற சமநிலையை உள்ளமைப்பதாகும், இது உங்கள் வலை பயன்பாட்டின் பகுதிகள் வெவ்வேறு ஹோஸ்ட்களில் இருக்கும் போது பயனுள்ளதாக இருக்கும். இணைப்பின் பரிமாற்றத்தை த்ரோட்டில் செய்வதன் மூலம் இதை அடைய முடியும், எடுத்துக்காட்டாக URL மூலம்.
உரை திருத்தியைப் பயன்படுத்தி HAProxy உள்ளமைவு கோப்பைத் திறக்கவும்:
sudo vi /etc/haproxy/haproxy.cfg
கீழே உள்ள எடுத்துக்காட்டின் படி முன் மற்றும் பின்பகுதி பிரிவுகளை உள்ளமைக்கவும்:
frontend http_front
bind *:80
stats uri /haproxy?stats
acl url_blog path_beg /blog
use_backend blog_back if url_blog
default_backend http_back
backend http_back
balance roundrobin
server server_name1 private_ip1:80 check
server server_name2 private_ip2:80 check
backend blog_back
server server_name3 private_ip3:80 check
முன்பக்கம் url_blog எனப்படும் ACL விதியை அறிவிக்கிறது, இது /blog உடன் தொடங்கும் பாதைகளுடன் கூடிய அனைத்து இணைப்புகளுக்கும் பொருந்தும். Use_backend என்பது url_blog நிபந்தனையுடன் பொருந்தக்கூடிய இணைப்புகள் blog_back என்ற பின்தளத்தில் வழங்கப்பட வேண்டும் என்றும், மற்ற எல்லா கோரிக்கைகளும் இயல்புநிலை பின்தளத்தில் கையாளப்படும் என்றும் குறிப்பிடுகிறது.
பின்தளத்தில், உள்ளமைவு சேவையகங்களின் இரண்டு குழுக்களை அமைக்கிறது: http_back, முன்பு போலவே, மற்றும் blog_back எனப்படும் புதியது, இது example.com/blogக்கான இணைப்புகளைக் கையாளுகிறது.
அமைப்புகளை மாற்றிய பின், கோப்பைச் சேமித்து, பின்வரும் கட்டளையைப் பயன்படுத்தி HAProxy ஐ மறுதொடக்கம் செய்யுங்கள்:
sudo systemctl restart haproxy
தொடக்கத்தின் போது ஏதேனும் எச்சரிக்கைகள் அல்லது பிழைச் செய்திகளைப் பெற்றால், அவற்றுக்கான உங்கள் உள்ளமைவைச் சரிபார்த்து, தேவையான அனைத்து கோப்புகள் மற்றும் கோப்புறைகளை நீங்கள் உருவாக்கியிருப்பதை உறுதிசெய்து, மீண்டும் மீண்டும் தொடங்க முயற்சிக்கவும்.
அமைப்பைச் சோதிக்கிறது
HAProxy கட்டமைக்கப்பட்டு இயங்கியதும், லோட் பேலன்சர் சர்வரின் பொது ஐபி முகவரியை உலாவியில் திறந்து, பின்தளத்தில் நீங்கள் சரியாக இணைக்கப்பட்டுள்ளீர்களா எனச் சரிபார்க்கவும். கட்டமைப்பில் உள்ள புள்ளிவிவரங்கள் uri அளவுரு குறிப்பிட்ட முகவரியில் ஒரு புள்ளிவிவர பக்கத்தை உருவாக்குகிறது.
http://load_balancer_public_ip/haproxy?stats
நீங்கள் புள்ளிவிவரங்கள் பக்கத்தை ஏற்றும்போது, உங்கள் சர்வர்கள் அனைத்தும் பச்சை நிறத்தில் காட்டினால், அமைப்பு வெற்றிகரமாக இருந்தது!
புள்ளியியல் பக்கத்தில் உங்கள் வலை ஹோஸ்ட்களைக் கண்காணிப்பதற்கான சில பயனுள்ள தகவல்கள் உள்ளன, இதில் நேரம் மற்றும் அமர்வுகளின் எண்ணிக்கையும் அடங்கும். சேவையகம் சிவப்பு நிறமாகக் குறிக்கப்பட்டிருந்தால், சேவையகம் இயக்கப்பட்டிருப்பதை உறுதிசெய்து, அதை நீங்கள் சுமை சமநிலை இயந்திரத்திலிருந்து பிங் செய்யலாம்.
உங்கள் லோட் பேலன்சர் பதிலளிக்கவில்லை என்றால், HTTP இணைப்புகளை ஃபயர்வால் தடுக்கவில்லை என்பதை உறுதிப்படுத்தவும். கீழே உள்ள கட்டளையைப் பயன்படுத்தி HAProxy வேலை செய்கிறது என்பதை உறுதிப்படுத்தவும்:
sudo systemctl status haproxy
கடவுச்சொல் மூலம் புள்ளியியல் பக்கத்தைப் பாதுகாத்தல்
இருப்பினும், புள்ளி விவரப் பக்கம் முன்பக்கத்தில் பட்டியலிடப்பட்டிருந்தால், அது அனைவருக்கும் பார்க்கத் திறந்திருக்கும், இது நல்ல யோசனையாக இருக்காது. அதற்குப் பதிலாக, உங்கள் haproxy.cfg கோப்பின் முடிவில் கீழே உள்ள எடுத்துக்காட்டைச் சேர்ப்பதன் மூலம் தனிப்பயன் போர்ட் எண்ணை ஒதுக்கலாம். மாற்றவும் பயனர்பெயர் и கடவுச்சொல் பாதுகாப்பான ஒன்றுக்கு:
listen stats
bind *:8181
stats enable
stats uri /
stats realm Haproxy Statistics
stats auth username:password
புதிய கேட்போர் குழுவைச் சேர்த்த பிறகு, ஃபிரண்டெண்ட் குழுவிலிருந்து பழைய புள்ளிவிவரங்கள் யூரி இணைப்பை அகற்றவும். முடிந்ததும், கோப்பைச் சேமித்து, HAProxy ஐ மறுதொடக்கம் செய்யுங்கள்.
sudo systemctl restart haproxy
புதிய போர்ட் எண்ணுடன் மீண்டும் சுமை சமநிலையைத் திறந்து, கட்டமைப்பு கோப்பில் நீங்கள் குறிப்பிட்ட பயனர்பெயர் மற்றும் கடவுச்சொல்லுடன் உள்நுழையவும்.
http://load_balancer_public_ip:8181
உங்கள் எல்லா சர்வர்களும் இன்னும் பச்சை நிறத்தில் இருப்பதை உறுதிசெய்து, உங்கள் உலாவியில் போர்ட் எண்கள் இல்லாமல் லோட் பேலன்சர் ஐபியை மட்டும் திறக்கவும்.
http://load_balancer_public_ip/
உங்கள் பின்-இறுதி சேவையகங்களில் குறைந்தபட்சம் சில வகையான லேண்டிங் பக்கங்களாவது இருந்தால், ஒவ்வொரு முறையும் நீங்கள் பக்கத்தை மீண்டும் ஏற்றும் போது வேறு ஹோஸ்டிடமிருந்து பதிலைப் பெறுவதை நீங்கள் கவனிப்பீர்கள். உள்ளமைவுப் பிரிவில் வெவ்வேறு சமநிலை அல்காரிதங்களை முயற்சி செய்யலாம் அல்லது பார்க்கலாம்
முடிவு: HAProxy Load Balancer
உங்கள் HAProxy லோட் பேலன்சரை வெற்றிகரமாக அமைத்ததற்கு வாழ்த்துகள்! அடிப்படை சுமை சமநிலை அமைப்புடன் கூட, உங்கள் வலை பயன்பாட்டின் செயல்திறன் மற்றும் கிடைக்கும் தன்மையை நீங்கள் கணிசமாக மேம்படுத்தலாம். இந்த வழிகாட்டியானது HAProxy உடன் சமநிலையை ஏற்றுவதற்கான ஒரு அறிமுகமாகும், இது விரைவு அமைவு வழிகாட்டியில் உள்ளதை விட அதிக திறன் கொண்டது. பல்வேறு கட்டமைப்புகளைப் பயன்படுத்தி பரிசோதனை செய்ய பரிந்துரைக்கிறோம்
ஹெட்ரூமுடன் உங்கள் இணையச் சேவையைப் பாதுகாக்க பல ஹோஸ்ட்களைப் பயன்படுத்துவதன் மூலம், லோட் பேலன்சரே இன்னும் தோல்வியின் புள்ளியைக் காட்டலாம். பல லோட் பேலன்சர்களுக்கு இடையே மிதக்கும் ஐபியை நிறுவுவதன் மூலம் அதிக கிடைக்கும் தன்மையை நீங்கள் மேலும் மேம்படுத்தலாம். இதைப் பற்றி நீங்கள் எங்கள் தளத்தில் மேலும் அறியலாம்
பாடநெறி பற்றி மேலும்
ஆதாரம்: www.habr.com