የHAProxy Load Balancer በ CentOS ላይ በመጫን ላይ

የጽሁፉ ትርጉም የተዘጋጀው በትምህርቱ መጀመሪያ ዋዜማ ላይ ነው። የሊኑክስ አስተዳዳሪ. ምናባዊነት እና ስብስብ»

የHAProxy Load Balancer በ CentOS ላይ በመጫን ላይ

የጭነት ማመጣጠን ለተጠቃሚዎች የአንድ አገልግሎት መዳረሻ አንድ ነጥብ ሲያቀርቡ የድር መተግበሪያዎችን በበርካታ አስተናጋጆች ላይ ለማስፋት የተለመደ መፍትሄ ነው። HAProxy በጣም ታዋቂ ከሆኑ የክፍት ምንጭ ጭነት ማመጣጠን ሶፍትዌር አንዱ ሲሆን እንዲሁም ከፍተኛ ተገኝነት እና ተኪ ተግባርን ይሰጣል።

HAProxy ዓላማው የሀብት አጠቃቀምን ለማመቻቸት፣ የግብአት መጠንን ከፍ ለማድረግ፣ የምላሽ ጊዜን ለመቀነስ እና ማንኛውንም ነጠላ ሃብትን ከመጠን በላይ ከመጫን ለመቆጠብ ነው። እንደ CentOS 8 ባሉ የተለያዩ የሊኑክስ ስርጭቶች ላይ ሊጫን ይችላል፣ በዚህ መመሪያ ላይ እናተኩራለን እንዲሁም ስርዓቶች ደቢያን 8 и ኡቡንቱ 16.

የHAProxy Load Balancer በ CentOS ላይ በመጫን ላይ

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

ከዚህ በታች ያለውን ትዕዛዝ በመጠቀም ምንጭ ኮድ ያውርዱ. በ ላይ የሚገኝ አዲስ ስሪት ካለ ማረጋገጥ ይችላሉ። የ HAProxy ማውረድ ገጽ.

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 daemonን እንደገና ይጫኑ፡-

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

የሚከተሉትን ክፍሎች ወደ ፋይሉ ያክሉ። ተካ የአገልጋይ_ስም በስታቲስቲክስ ገጹ ላይ አገልጋዮችዎን መጥራት ያለበት, እና የግል_አይፒ - የድር ትራፊክን ለመምራት የሚፈልጉት የአገልጋዮች የግል አይፒ አድራሻዎች። የግል አይፒ አድራሻዎችን ማየት ይችላሉ። በ UpCloud የቁጥጥር ፓነል ውስጥ እና በትሩ ላይ የግል አውታረ መረብ በምናሌው ላይ አውታረ መረብ.

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 ማዳመጥ በፖርት 80 ላይ ይገልፃል፣ ይህ ደግሞ ትራፊክን ወደ ነባሪው የጀርባ ጀርባ http_back ያደርሳል። ተጨማሪ ስታቲስቲክስ /haproxy?stats የስታቲስቲክስ ገጹን ከተጠቀሰው አድራሻ ጋር ያገናኛል።

የተለያዩ ጭነት ማመጣጠን ስልተ ቀመሮች።

በኋለኛ ክፍል ውስጥ አገልጋዮችን መግለጽ HAProxy እነዚያን አገልጋዮች በክብ ሮቢን ስልተ ቀመር መሠረት ለጭነት ማመጣጠን እንዲጠቀም ያስችለዋል።

ማመጣጠን ስልተ ቀመሮች በኋለኛው ክፍል ውስጥ እያንዳንዱ ግንኙነት ወደ የትኛው አገልጋይ እንደተላከ ለመወሰን ጥቅም ላይ ይውላል። አንዳንድ ጠቃሚ አማራጮች እነኚሁና።

  • Rondrobin እያንዳንዱ አገልጋይ በተራው እንደ ክብደቱ መጠን ጥቅም ላይ ይውላል. የአገልጋዮቹ የማስኬጃ ጊዜ በእኩል መሰራጨቱ ሲቀር ይህ በጣም ለስላሳ እና በጣም ፍትሃዊ ስልተ-ቀመር ነው። ይህ አልጎሪዝም ተለዋዋጭ ነው, ይህም የአገልጋዩን ክብደት በበረራ ላይ እንዲያስተካክሉ ያስችልዎታል.
  • ሌስትኮን፡ በጣም ጥቂት ግንኙነቶች ያለው አገልጋይ ተመርጧል. ክብ ሮቢን ተመሳሳይ ጭነት ባላቸው አገልጋዮች መካከል ይከናወናል። ይህን አልጎሪዝም መጠቀም እንደ LDAP፣ SQL፣ TSE፣ ወዘተ የመሳሰሉ ረጅም ክፍለ ጊዜዎች ይመከራል ነገር ግን እንደ HTTP ላሉ አጭር ክፍለ ጊዜዎች በጣም ተስማሚ አይደለም።
  • አንደኛ: የሚገኙ የግንኙነት ክፍተቶች ያሉት የመጀመሪያው አገልጋይ ግንኙነቱን ይቀበላል። አገልጋዮች የሚመረጡት ከዝቅተኛው የቁጥር መታወቂያ እስከ ከፍተኛ ነው፣ ይህም በነባሪነት በእርሻ ውስጥ ካለው የአገልጋይ አቀማመጥ ጋር ይዛመዳል። አንዴ አገልጋዩ የ maxconn እሴት ሲደርስ ቀጣዩ አገልጋይ ጥቅም ላይ ይውላል።
  • ምንጭ: የትኛው አገልጋይ ጥያቄውን እንደሚቀበል ለማወቅ የምንጩ አይፒ አድራሻው ሃሽድ ተደርጎ በጠቅላላ የአሂድ አገልጋዮች ክብደት የተከፋፈለ ነው። ስለዚህ, ተመሳሳዩ የደንበኛ አይፒ አድራሻ ሁልጊዜ ወደ አንድ አገልጋይ ይሄዳል, አገልጋዮቹ ግን ሳይለወጡ ይቀራሉ.

በመተግበሪያው ንብርብር ላይ የጭነት ማመጣጠን በማዋቀር ላይ (ንብርብር 7)

ሌላው ያለው አማራጭ የጭነት ማመላለሻውን በመተግበሪያው ንብርብር (ንብርብር 7) ላይ እንዲሰራ ማዋቀር ነው, ይህም የድር መተግበሪያዎ ክፍሎች በተለያዩ አስተናጋጆች ላይ ሲገኙ ጠቃሚ ነው. ይህ የግንኙነቱን ማስተላለፍ በማፈን ሊሳካ ይችላል, ለምሳሌ በዩአርኤል.

የ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 ህግ አውጇል ይህም በ/ብሎግ የሚጀምሩ ዱካዎች ጋር ሁሉንም ግንኙነቶች የሚመለከት ነው። Use_backend ከዩአርኤል_ብሎግ ሁኔታ ጋር የሚዛመዱ ግንኙነቶች በብሎግ_ባክ ጀርባ በተባለው ጀርባ መቅረብ እንዳለባቸው እና ሌሎች ሁሉም ጥያቄዎች በነባሪ የጀርባ ማቀፊያ መስተናገድ እንዳለባቸው ይገልጻል።

በኋለኛው ጫፍ፣ አወቃቀሩ ሁለት የአገልጋይ ቡድኖችን ያዘጋጃል፡ http_back፣ እንደበፊቱ እና አዲስ ብሎግ_ባክ የተባለ፣ ከ example.com/blog ጋር ግንኙነቶችን ያስተናግዳል።

ቅንብሮቹን ከቀየሩ በኋላ ፋይሉን ያስቀምጡ እና HAProxyን በሚከተለው ትዕዛዝ እንደገና ያስጀምሩ:

sudo systemctl restart haproxy

በሚጀምሩበት ጊዜ ማንኛቸውም ማስጠንቀቂያዎች ወይም ስህተቶች ካጋጠሙዎት ለማንኛውም አወቃቀሩን ያረጋግጡ እና ሁሉንም አስፈላጊ ፋይሎች እና ማህደሮች መፍጠርዎን ያረጋግጡ እና ከዚያ እንደገና ለመጀመር ይሞክሩ።

ማዋቀሩን በመሞከር ላይ

አንድ ጊዜ HAProxy ከተዋቀረ እና ሲሰራ የሎድ ባላንስ አገልጋይ የህዝብ IP አድራሻን በአሳሽ ውስጥ ይክፈቱ እና ከጀርባው ጋር በትክክል የተገናኙ መሆናቸውን ያረጋግጡ። በማዋቀሩ ውስጥ ያለው የስታቲስቲክስ ዩሪ መለኪያ በተጠቀሰው አድራሻ ላይ የስታቲስቲክስ ገጽ ይፈጥራል።

http://load_balancer_public_ip/haproxy?stats

የስታቲስቲክስ ገጹን ሲጭኑ፣ ሁሉም አገልጋዮችዎ አረንጓዴ ከሆኑ፣ ማዋቀሩ የተሳካ ነበር!

የHAProxy Load Balancer በ CentOS ላይ በመጫን ላይ

የስታስቲክስ ገጹ የድር አስተናጋጆችዎን ለመከታተል አንዳንድ ጠቃሚ መረጃዎችን ይዟል፣ የላይ/የወረደ ጊዜ እና የክፍለ-ጊዜዎች ብዛት። አገልጋዩ ቀይ ምልክት ከተደረገበት፣ አገልጋዩ መነሳቱን ያረጋግጡ እና ከሎድ ሚዛኑ ላይ ፒንግ ማድረግ ይችላሉ።

የጭነት ማመሳከሪያዎ ምላሽ የማይሰጥ ከሆነ የኤችቲቲፒ ግንኙነቶች በፋየርዎል እየተታገዱ አለመሆኑን ያረጋግጡ። እንዲሁም 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 ጋር ሚዛንን የመጫን መግቢያ ብቻ ነው። በመጠቀም የተለያዩ ውቅሮችን ለመሞከር እንመክራለን ሰፊ ሰነዶችለ HAProxy ይገኛል እና ከዚያ ለምርት አካባቢዎ የጭነት ሚዛን ማቀድ ይጀምሩ።

የድር አገልግሎትዎን በዋና ክፍል ለመጠበቅ ብዙ አስተናጋጆችን በመጠቀም የሎድ ሚዛኑ ራሱ አሁንም የውድቀት ነጥብን ሊወክል ይችላል። ተንሳፋፊ አይፒን በበርካታ የጭነት ማመሳከሪያዎች መካከል በማዘጋጀት ከፍተኛ ተገኝነትን የበለጠ ማሻሻል ይችላሉ። ስለዚህ ጉዳይ በእኛ ውስጥ የበለጠ ማወቅ ይችላሉ በ UpCloud ላይ ስለ ተንሳፋፊ የአይፒ አድራሻዎች መጣጥፍ.

ስለ ኮርሱ ተጨማሪ የሊኑክስ አስተዳዳሪ. ምናባዊነት እና ስብስብ»***

ምንጭ: hab.com

አስተያየት ያክሉ