Paano I-setup ang HAProxy bilang Load Balancer para sa Nginx sa CentOS 8

Paano I Setup Ang Haproxy Bilang Load Balancer Para Sa Nginx Sa Centos 8



Ang High Availability Proxy, na dinaglat din bilang HAProxy ay isang magaan at mabilis na load balancer na nagdodoble din bilang isang proxy server. Bilang isang load balancer, gumaganap ito ng mahalagang papel sa pamamahagi ng papasok na trapiko sa web sa maraming web server gamit ang ilang partikular na pamantayan. Sa paggawa nito, sinisigurado nito ang mataas na availability at fault tolerance kung sakaling mayroong masyadong maraming kasabay na mga kahilingan na maaaring mag-overload sa isang web server.

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-balancer

Pagkatapos, 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 update

Susunod, i-install ang HA Proxy tulad ng ipinapakita

# yum install haproxy

Sa matagumpay na pag-install, mag-navigate sa haproxy directory.

# cd / atbp / haproxy

Ang 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.bak

Susunod, magpatuloy at buksan ang configuration file

kasi haproxy.cfg

Tiyaking 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.conf

Tiyaking 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.conf

Idikit ang mga sumusunod na linya, i-save at lumabas

local2.=impormasyon / ay / log / haproxy-access.log #Para sa Access Log
lokal2.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 rsyslog

Pagkatapos ay simulan at paganahin ang HAProxy

# systemctl simulan ang rsyslog
# systemctl paganahin ang rsyslog

I-verify na tumatakbo ang HAProxy

# systemctl status rsyslog

Hakbang 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 update

Susunod na i-install  EPEL (Mga Extra Package para sa Enterprise Linux)

# yum install mainit na paglabas

Upang i-install ang Nginx, patakbuhin ang command:

# yum install nginx

Susunod, 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.html

Para sa server_02

# echo 'server_02. Hoy ! Maligayang pagdating sa pangalawang web server' > index.html

Para maisagawa ang mga pagbabago, i-restart ang Nginx

# systemctl i-restart ang nginx

Hakbang 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.132

Dapat 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-address

Ang 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.