Ang HaProxy ay ginagamit ng mga sikat na site gaya ng Tumblr, GitHub, at StackOverflow. Sa gabay na ito, dadalhin ka namin sa pag-install ng HAProxy sa isang setup ng mga webserver na pinapagana gamit ang Nginx.
Pag-setup ng Lab
3 mga pagkakataon ng mga server ng CentOS 7 tulad ng ipinapakita
Hostname Mga IP address
load_balancer 3.17.12.132
server_01 3.19.229.234
server_02 3.17.9.217
Hakbang 1: I-edit ang /etc/hosts file para sa load balancer
Upang magsimula, mag-log in sa load balancer system at baguhin ang /etc/hosts file upang isama ang mga hostname at IP address ng dalawang web server tulad ng ipinapakita
$ kasi / atbp / mga host
3.19.229.234 server_01
3.17.9.217 server-02
Kapag tapos na, i-save ang mga pagbabago at lumabas sa configuration file.
Ngayon pumunta sa bawat isa sa mga web server at i-update ang /etc/hosts file na may IP address at hostname ng load balancer
3.17.12.132 load-balancerPagkatapos, kumpirmahin na maaari mong i-ping ang load balancer mula sa server_01
At gayundin mula sa server_02
Gayundin, siguraduhin, maaari mong i-ping ang mga server mula sa load balancer.
Perpekto! lahat ng server ay maaaring makipag-ugnayan sa load balancer!
Hakbang 2: I-install at i-configure ang HA Proxy sa load balancer
Dahil ang HA Proxy ay madaling makukuha mula sa opisyal na repositoryo ng CentOS, ii-install namin ito gamit ang yum o dnf package manager.
Pero gaya ng dati, i-update muna ang system
# sarap ng updateSusunod, i-install ang HA Proxy tulad ng ipinapakita
# yum install haproxySa matagumpay na pag-install, mag-navigate sa haproxy directory.
# cd / atbp / haproxyAng pinakamahusay na kasanayan ay nangangailangan sa amin na i-back up ang anumang configuration file bago gumawa ng anumang mga pagbabago. Kaya i-backup ang haproxy.cfg file sa pamamagitan ng pagpapalit ng pangalan nito.
# mv haproxy.cfg haproxy.cfg.bakSusunod, magpatuloy at buksan ang configuration file
kasi haproxy.cfgTiyaking gagawin mo ang pagbabago tulad ng ipinapakita
#------------------------------------------------- --------------------# Mga pangkalahatang setting
#------------------------------------------------- --------------------
global
log 127.0.0.1 local2 #Configuration ng log
chroot / ay / lib / haproxy
pidfile / ay / tumakbo / haproxy.pid
maxconn 4000
user haproxy #Haproxy na tumatakbo sa ilalim ng user at grupong 'haproxy'
pangkat haproxy
demonyo
# i-on ang stats unix socket
stats socket / ay / lib / haproxy / stats
#------------------------------------------------- --------------------
# karaniwang mga default na gagawin ng lahat ng seksyong 'makinig' at 'backend'
# gamitin kung hindi nakatalaga sa kanilang block
#------------------------------------------------- --------------------
mga default
mode http
log global
opsyon httplog
opsyon dontlognull
opsyon http-server-close
opsyon sa pagpapasa para sa maliban sa 127.0.0.0 / 8
opsyon muling pagpapadala
muling sumusubok 3
timeout http-request 10s
timeout queue 1m
timeout kumonekta 10s
timeout client 1m
server ng timeout 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
#------------------------------------------------- --------------------
#HAProxy Monitoring Config
#------------------------------------------------- --------------------
makinig haproxy3-monitoring * : 8080 Ang #Haproxy Monitoring ay tumatakbo sa port 8080
mode http
opsyon forwardfor
opsyon httpclose
stats paganahin
stats show-legends
stats refresh 5s
stats uri / stats #URL para sa HAProxy monitoring
stats realm Haproxy\ Statistics
stats auth Password123: Password123 #User at Password para sa pag-login sa monitoring dashboard
stats admin kung TOTOO
default_backend app-main #Ito ay opsyonal para sa pagsubaybay sa backend
#------------------------------------------------- --------------------
# FrontEnd Configuration
#------------------------------------------------- --------------------
frontend pangunahing
magbigkis * : 80
opsyon http-server-close
opsyon forwardfor
default_backend app-main
#------------------------------------------------- --------------------
# BackEnd round robin bilang balanse algorithm
#------------------------------------------------- --------------------
backend app-main
balanse roundrobin #Balanse algorithm
opsyon httpchk HEAD / HTTP / 1.1 \r\nHost:\ localhost
#Tingnan ang server application ay up at malusog - 200 status code
server server_01 3.19.229.234: 80 suriin #Nginx1
server server_02 3.17.9.217: 80 suriin #Nginx2
Siguraduhing baguhin ang hostname ng web server at mga IP address gaya ng ipinahiwatig sa huling dalawang linya. I-save ang mga pagbabago at lumabas.
Ang susunod na hakbang ay ang pag-configure ng Rsyslog upang makapag-log ng mga istatistika ng HAProxy.
# kasi / atbp / rsyslog.confTiyaking aalisin mo ang komento sa mga linya sa ibaba upang payagan ang mga koneksyon sa UDP
$ModLoad imudp$UDPServerRun 514
Susunod, magpatuloy at lumikha ng bagong configuration file haproxy.conf
# kasi / atbp / rsyslog.d / haproxy.confIdikit ang mga sumusunod na linya, i-save at lumabas
local2.=impormasyon / ay / log / haproxy-access.log #Para sa Access Loglokal2.paunawa / ay / log / haproxy-info.log #For Service Info - Backend, loadbalancer
Para magkabisa ang mga pagbabago, i-restart ang rsyslog daemon gaya ng ipinapakita:
# systemctl i-restart ang rsyslogPagkatapos ay simulan at paganahin ang HAProxy
# systemctl simulan ang rsyslog# systemctl paganahin ang rsyslog
I-verify na tumatakbo ang HAProxy
# systemctl status rsyslogHakbang 3: I-install at i-configure ang Nginx
Ngayon, ang tanging bahagi na natitira ay ang pag-install ng Nginx. Mag-log in sa bawat isa sa mga server at unang i-update ang mga pakete ng system:
# sarap ng updateSusunod na i-install EPEL (Mga Extra Package para sa Enterprise Linux)
# yum install mainit na paglabasUpang i-install ang Nginx, patakbuhin ang command:
# yum install nginxSusunod, simulan at paganahin ang Nginx
# systemctl simulan ang nginx# systemctl paganahin ang nginx
Pagkatapos ay babaguhin namin ang index.html file sa parehong mga kaso upang ipakita o gayahin kung paano naipamahagi ng load balancer ang trapiko sa web sa parehong mga server.
Para sa server_01
# echo 'server_01. Hoy ! Maligayang pagdating sa unang web server' > index.htmlPara sa server_02
# echo 'server_02. Hoy ! Maligayang pagdating sa pangalawang web server' > index.htmlPara maisagawa ang mga pagbabago, i-restart ang Nginx
# systemctl i-restart ang nginxHakbang 4: Pagsubok kung gumagana ang load balancer
Sa wakas ay nasa punto na tayo kung saan gusto nating makita kung gumagana ang configuration. Kaya mag-log in sa load balancer at paulit-ulit na isagawa ang curl command
# kulot 3.17.12.132Dapat kang makakuha ng alternatibong output sa terminal na nagpapakita ng halaga ng index.html mula sa server_01 at server_02
Ngayon subukan natin gamit ang isang web browser. I-browse ang IP address ng iyong load balancer
http: // load-balancer-IP-addressAng unang pahina ay magpapakita ng nilalaman mula sa alinman sa mga web server
Ngayon i-refresh ang webpage at tingnan kung nagpapakita ito ng nilalaman mula sa ibang web server
Perpekto! Ang balanse ng pagkarga ay pantay na namamahagi ng trapiko ng IP sa pagitan ng dalawang web server!
Tinatapos nito ang tutorial na ito kung paano mo mai-install pati na rin ang pag-configure ng HAProxy sa CentOS 8. Ang iyong feedback ay lubos na pinahahalagahan.