áá±á¬ááºážáá«ážááá¬áá¬ááŒááºááᯠáááºáááºážá
ááá·áºáá±á·ááœáẠááŒááºáááºáá²á·áá«áááºá
Load Balancing ááẠáá¯á¶ážá
áœá²áá°áá»á¬ážá¡á¬áž áááºáá±á¬ááºááŸá¯ááá¯á· áááºáá±á¬ááºááẠá¡áá»ááºáá
áºáá»ááºááᯠáá¶á·ááá¯ážáá±ážá
ááºááœáẠáááºá¡ááá®áá±ážááŸááºážáá»á¬ážá
áœá¬ááᯠá¡áá»á¬ážááá¯áẠá¡ááá¯ááºážá¡áá¬ááŒáá·áº áá»áááºááŸáááŒááºážá¡ááœáẠáá¯á¶ááŒá±ááŸááºážáá»ááºáá
áºáá¯ááŒá
áºáááºá
HAProxy ááẠá¡áááºážá¡ááŒá
áºá¡áá¯á¶ážááŒá¯ááŸá¯ááᯠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºáááºá ááŒááºáááºážááá¯ááºááŸá¯ááᯠááá¯ážááŒáŸáá·áºáááºá áá¯á¶á·ááŒááºááŸá¯á¡áá»áááºááᯠáá»áŸá±á¬á·áá»áááºááŸáá·áº áá
áºáŠážáá»ááºážá
á®á á¡áááºážá¡ááŒá
áºáá»á¬ážááᯠááœááºááœááºáá²áá² áááºáá±á¬ááºááŒááºážá០ááŸá±á¬ááºááŒááºááẠááŒáá¯ážá
á¬ážáááºá á€áááºážááœáŸááºáá»ááºááœáẠáá»áœááºá¯ááºááá¯á·á¡á¬áá¯á¶á
áá¯ááºááá·áº CentOS 8 áá²á·ááá¯á·áá±á¬ Linux ááŒáá·áºááŒá°ážááŸá¯á¡áá»áá¯ážáá»áá¯ážááœáẠááá·áºááœááºážááá¯ááºáááºá
HAProxy ááẠá¡ááœááºá¡ááœá¬ážá¡áá¬áá»á¬ážáá±á¬ áááºááá¯ááºáá»á¬ážá¡ááœáẠá¡áá°ážááá·áºáá»á±á¬áºááŒá®áž áá¬áá¬áá±á«ááºážáá»á¬ážá áœá¬á áááºáááºáá±á¬ááºááŸá¯ááœá²á·á ááºážáá¯á¶áá»á¬ážá áá¯á¶ááŒááºá áááºáá»áááŸá¯ááŸáá·áº á áœááºážáá±á¬ááºáááºááᯠááŒáŸáá·áºáááºáááºá¡ááœáẠáááŒá¬áá á¡áá¯á¶ážááŒá¯áá«áááºá á€áááºážááœáŸááºáá»ááºááœáẠHAProxy ááᯠCentOS 8 cloud host ááœáẠload balancer á¡ááŒá ẠáááºááŸááºááẠá¡ááá·áºáá»á¬ážááᯠá¡ááŒááºážáá»ááºážáá±á¬áºááŒááŒá®áž áááºážááẠáááºááááºáá¬áá¬áá»á¬ážááá¯á· áááºážááŒá±á¬ááºážáá»á¬ážááá¯á·áá±á¬ááºáá±ážáá«áááºá
á¡áá±á¬ááºážáá¯á¶ážááááºáá»á¬ážá¡ááœáẠááŒáá¯áááºááá¯á¡ááºáá»ááºá¡áá±ááŒáá·áºá ááá·áºááœáẠá¡áááºážáá¯á¶áž áááºáá¬áá¬ááŸá áºáá¯ááŸáá·áº Load Balancing áá¬áá¬áá áºáᯠááŸáááá·áºáááºá áááºáá¬áá¬áá»á¬ážááẠáááºážááá¯á·ááŒá¬ážááŸá load balancing ááá¯á ááºážáááºáááºá¡ááœáẠá¡áááºážáá¯á¶áž nginx ááá¯á·ááá¯áẠhttpd áá²á·ááá¯á·áá±á¬ á¡ááŒá±áá¶áááºáááºáá±á¬ááºááŸá¯ááᯠáá¯ááºáá±á¬ááºáá±ááá«áááºá
CentOS 8 ááœáẠHAProxy ááᯠááá·áºááœááºážááŒááºážá
HAProxy ááẠáá»ááºááŒááºá áœá¬ ááŒá±á¬ááºážáá²áá±áá±á¬ open source á¡ááºááºáá áºáá¯ááŒá áºáá±á¬ááŒá±á¬áá·áºá áá¯á¶ááŸáẠCentOS ááá¯ááŸá±á¬ááºááŸá¯áá»á¬ážááœáẠááá·áºá¡ááœááºáááŸáááá¯ááºáá±á¬ ááŒáá·áºááŒá°ážááŸá¯ááẠáá±á¬ááºáá¯á¶ážáá¬ážááŸááºážááŒá áºáááºááá¯ááºáá±á áááºááŸááá¬ážááŸááºážááá¯ááááŸááááºá á¡á±á¬ááºáá« command ááᯠrun áá«á
sudo yum info haproxy
HAProxy á០ááœá±ážáá»ááºááẠáááºááŒáááºáá±á¬ áá¬ážááŸááºáž áá¯á¶ážáá¯ááᯠá¡ááŒá²áááºáž áá¶á·ááá¯ážáá±ážáááº- áá±á¬ááºáá¯á¶áž áá¶á·ááá¯ážáá±ážáá¬ážááá·áº áá¬ážááŸááºáž ááŸá áºáá¯ááŸáá·áº á¡áá±ážááŒá®ážáá±á¬ á¡ááºááááºáá»á¬ážááᯠáááºáá¶áááŸááá² ááááá á¡áá±á¬ááºáž áá¬ážááŸááºážá HAProxy áááºááá¯ááºááœááºáá±á¬áºááŒáá¬ážáá±á¬ áá±á¬ááºáá¯á¶ážáá±á«áºáááºááŒáááºáá±á¬áá¬ážááŸááºážááᯠáááºá¡ááŒá²á á áºáá±ážááá¯ááºááŒá®áž áááºááá·áºáá¬ážááŸááºážááŸáá·áº áááºáá¯ááºáá±á¬ááºááá¯áááºááᯠáá¯á¶ážááŒááºááá¯ááºáááºá
á€áááºážááœáŸááºáá»ááºááœááºá áááºážááœáŸááºááá¯áá±ážáá¬ážá ááºááœáẠáá¯á¶ááŸááºááá¯ááŸá±á¬ááºáá±áá¬áá»á¬ážááœáẠááááŸáááá¯ááºáá±ážááá·áº áá±á¬ááºáá¯á¶ážáá±á«áºáááºááŒáááºáá±á¬áá¬ážááŸááºáž 2.0 ááᯠáá»áœááºá¯ááºááá¯á· ááá·áºááœááºážáá«áááºá áá°áááºážá¡áááºážá¡ááŒá áºá០áááºážááᯠááá·áºááœááºážááẠááá¯á¡ááºáááºááŒá áºáááºá ááá¯á·áá±á¬áº ááááŠážá áœá¬á áááºááẠáááá¯ááááºááᯠáá±á«ááºážáá¯ááºáá¯ááºááŒá®áž á á¯á ááºážááẠááá¯á¡ááºáá±á¬ á¡ááŒá±á¡áá±áá»á¬ážááŸáá·áº ááá¯ááºáá®ááŸá¯ááŸááááŸá á á áºáá±ážáá«á
sudo yum install gcc pcre-devel tar make -y
á¡á±á¬ááºáá« command ááá¯áá¯á¶ážááŒá®áž source code ááá¯áá±á«ááºážáá¯ááºáá¯ááºáá«á ááœááºáááŸáááá¯ááºáá±á¬áá¬ážááŸááºážá¡áá
áºááŸááááŸáá
á
áºáá±ážááá¯ááºáááºá
wget http://www.haproxy.org/download/2.0/src/haproxy-2.0.7.tar.gz -O ~/haproxy.tar.gz
áá±á«ááºážáá¯áẠááŒá®ážáááºááŸáá·áºá á¡á±á¬ááºáá« command ááᯠá¡áá¯á¶ážááŒá¯á ááá¯ááºáá»á¬ážááᯠááŒááºáá«á
tar xzvf ~/haproxy.tar.gz -C ~/
ááá¯ááºááá¯ážáá¬ážáá±á¬ áááºážááŒá áºáááºážááœáŸááºááá¯á· ááœá¬ážáá«-
cd ~/haproxy-2.0.7
ááá¯á·áá±á¬áẠááá·áºá áá áºá¡ááœáẠáááá¯ááááºááᯠá á¯á ááºážáá«á
make TARGET=linux-glibc
áá±á¬ááºáá¯á¶ážá¡áá±áá²á· HAProxy ááá¯ááºááá¯áẠinstall áá¯ááºáá«á
sudo make install
HAProxy ááᯠááᯠááá·áºááœááºážáá¬ážáá±á¬áºáááºáž áááºážááᯠáá¯ááºáá±á¬ááºááẠáá±á¬ááºááẠááŒááºááŸááºááŸá¯áá»á¬áž ááá¯á¡ááºáá«áááºá á¡á±á¬ááºáá±á¬áºááŒáá« áá±á¬á·ááºáá²ááŸáá·áº áááºáá±á¬ááºááŸá¯áá»á¬ážááᯠáááºááœáá·áºááŒáá«á áá¯á·á
ááá·áºáá¬áá¬á¡ááœáẠHAProxy ááᯠá áá áºááá·áºááœááºážááŒááºážá
ááᯠHAProxy ááá·áºááœááºážááŸá¯áá»á¬ážá¡ááœáẠá¡á±á¬ááºáá«áááºážááœáŸááºáá»á¬ážááŸáá·áº á á¬áááºážá¡ááºážááá¯ááºááᯠááá·áºáá«á
sudo mkdir -p /etc/haproxy
sudo mkdir -p /var/lib/haproxy
sudo touch /var/lib/haproxy/stats
áá¯á¶ááŸááºá¡áá¯á¶ážááŒá¯áá°á¡áá±ááŒáá·áº HAProxy ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠáááºáá¯ááºáá±á¬ááºááá¯ááºá á±ááẠbinaries á¡ááœáẠáááºá¹áá±áááá·áºááºáá áºáá¯ááᯠáááºáá®ážáá«-
sudo ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
áááºáá±á¬ááºááŸá¯áá áºáá¯á¡áá±ááŒáá·áº ááá·áºá áá áºááá¯á· ááá±á¬ááºá á®áá áºáá¯ááᯠááá·áºááá¯áá«áá ááá°áá¬áá»á¬ážá០haproxy.init ááá¯ááºááᯠáááºá /etc/init.d áááºážááœáŸááºááá¯á· áá°ážáá°áá«á script áááºáááºá á±áááºá¡ááœáẠááá¯ááºááœáá·áºááŒá¯áá»ááºáá»á¬ážááᯠáááºážááŒááºáá«á ááá¯á·áá±á¬áẠ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
áááºážááŒá®ážáá±á¬ááºá áááºááẠá¡á±á¬ááºáá« command ááᯠá¡áá¯á¶ážááŒá¯á ááá·áºááœááºážáá¬ážáá±á¬ áá¬ážááŸááºážáá¶áá«ááºááᯠáááºáá¶á á áºáá±ážááá¯ááºáááº-
haproxy -v
HA-Proxy version 2.0.7 2019/09/27 - https://haproxy.org/
áá»áœááºá¯ááºááá¯á·áá¡ááŒá±á¡áá±ááœááºá áá¬ážááŸááºážááẠ2.0.7 ááŒá áºáááºá á¡áááºááœááºááŒáá¬ážááá·áºá¡ááá¯ááºáž output ááŒá áºááá·áºáááºá
áá±á¬ááºáá¯á¶ážááœááºá CentOS 8 ááŸá default firewall ááẠá€ááá±á¬áá»ááºá¡ááœáẠá¡áá±á¬áºáá±áž áááºážáá»ááºáááºá ááá¯á¡ááºáá±á¬áááºáá±á¬ááºááŸá¯áá»á¬ážááá¯ááœáá·áºááŒá¯áááºááŸáá·áº firewall ááá¯ááŒááºáááºáááºááŸááºáááºá¡á±á¬ááºáá« command áá»á¬ážááá¯á¡áá¯á¶ážááŒá¯áá«á
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-port=8181/tcp
sudo firewall-cmd --reload
Balancer Setup ááá¯ááœáá·áºáá«á
HAProxy ááᯠá áá áºááá·áºááœááºážááŒááºážááẠá¡ááœááºááá¯ážááŸááºážáá±á¬ áá¯ááºáááºážá ááºáá áºáá¯ááŒá áºáááºá á¡ááŒá±áá¶á¡á¬ážááŒáá·áºá áááºáá¯ááºáááºááá¯á¡ááºáááºááŸá¬ HAProxy ááẠáááºááá·áºáá»áááºáááºááŸá¯áá»á¬ážááᯠáá¬ážáá±á¬ááºááá·áºááŒá®áž áááºážááá¯á·á¡á¬áž áááºááá·áºáá±áá¬ááœáẠááŒááºáááºáá¯ááºááœáŸáá·áºááá·áºáááºááᯠááŒá±á¬ááŒáá«á
áááºáááºáá»á¬ážááᯠáááºááŸááºááŒááºážááŒáá·áº /etc/haproxy/haproxy.cfg ááᯠáááºáá®ážááŒááºážááŒáá·áº áááºážááᯠáá¯ááºáá±á¬ááºáááºá HAProxy configuration options áá»á¬ážá¡ááŒá±á¬ááºáž áááºáááºááá¯ááºáá«áááºá
áááºáá°ááá¯á·áá±á¬ááºáá±ážá¡ááœáŸá¬ (á¡ááœáŸá¬ 4) ááœáẠáá»áááºááœááºáá»áŸá¬áá»áááºááŸáááŒááºáž
á¡ááŒá±áᶠá áá áºááá·áºááœááºážááŸá¯ááŒáá·áº á ááŒáá«á áá¯á·á á¥ááá¬á¡á¬ážááŒáá·áº á¡áá¯á¶ážááŒá¯á config ááá¯ááºá¡áá áºáá áºáá¯áááºáá®ážáá«á vi á¡á±á¬ááºáá« command ááŒáá·áº
sudo vi /etc/haproxy/haproxy.cfg
ááá¯ááºááœáẠá¡á±á¬ááºáá«á¡ááá¯ááºážáá»á¬ážááᯠááá·áºáá«á á¡á
á¬ážááá¯ážáá«á áá¬áá¬á¡ááẠá
á¬áááºážááá¬ážá
á¬áá»ááºááŸá¬áá±á«áºááŸá ááá·áºáá¬áá¬áá»á¬ážááᯠáááºááá¯á·áá±á«áºááá¯ááá·áºááááºážá private_ip â ááẠáááºáááºážááŒá±á¬ááºážááᯠááœáŸááºááŒááá¯áá±á¬ áá¬áá¬áá»á¬ážá áá®ážááá·áº IP ááááºá
á¬áá»á¬ážá áááºááẠááá¯ááºááá¯áẠIP ááááºá
á¬áá»á¬ážááᯠá
á
áºáá±ážááá¯ááºáááºá
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 ááẠá á¬áááºážááá¬ážá á¬áá»ááºááŸá¬á¡á¬áž áááºááŸááºáá¬ážáá±á¬ááááºá á¬ááá¯á· áá»áááºáááºáá±ážáááºá
á¡áá»áá¯ážáá»áá¯ážáá±á¬ load balancing algorithms á
backend ááá¹áááŸá áá¬áá¬áá»á¬ážááᯠáááºááŸááºááŒááºážááŸá¬ ááŒá áºááá¯ááºááá·áºá¡áá«ááœáẠround-robin algorithm á¡á Load Balancing ááŒá¯áá¯ááºáááºá¡ááœáẠHAProxy ááᯠá€áá¬áá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááœáá·áºáá±ážáááºá
áá»áááºáááºááŸá¯áá áºáá¯á á®ááá¯á· áá»áááºáááºááŸá¯áá áºáá¯á á®ááᯠáá±á¬ááºáá¶á¡á áœááºááŸá áááºááá·áºáá¬áá¬á០ááŒááºááœá¬ážáááºááᯠáá¯á¶ážááŒááºááẠáá»áááºááœááºáá»áŸá¬ááŸáááá·áº á¡ááºáááá¯áá®áááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áááºá á€áááºááŸá¬ á¡áá¯á¶ážáááºáá±á¬ ááœá±ážáá»ááºá áá¬á¡áá»áá¯á·ááŒá áºáááº-
- Roundrobin- áá¬áá¬áá áºáá¯á á®ááᯠáááºážáá¡áá±ážáá»áááºá¡á á¡ááŸáá·áºáá»á¡áá¯á¶ážááŒá¯áááºá áá¬áá¬áá»á¬ážá áá¯ááºáá±á¬ááºáá»áááºááᯠá¡áá®á¡áá»áŸ ááŒáá·áºáá±áá±áá»áááºááœáẠáááºážááẠá¡áá»á±á¬ááœá±á·áá¯á¶ážááŸáá·áº á¡áá»áŸááá¯á¶áž á¡ááºáááá¯áá®áááºááŒá áºáááºá ဠalgorithm ááẠááœááºáááºááŒá®áž áá¬áá¬á á¡áá±ážáá»áááºááᯠá¡áá»ááºá¡ááŒáẠáá»áááºááŸáááá¯ááºá á±áá«áááºá
- á¡áááºáá¯á¶áž- áá»áááºáááºááŸá¯á¡áááºážáá¯á¶ážááŸááá±á¬ áá¬áá¬ááᯠááœá±ážáá»ááºáá¬ážáááºá Round robin ááᯠáá°áá®áá±á¬áááºááŒáá·áº áá¬áá¬áá»á¬ážááŒá¬ážááœáẠáá¯ááºáá±á¬ááºáááºá ဠá¡ááºáááá¯áá®áááºááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááẠLDAPá SQLá TSE á áááºááŒáá·áº ááŸááºáá»á¬ážáá±á¬ áááºááŸááºáá»á¬ážá¡ááœáẠá¡ááŒá¶ááŒá¯áá¬ážáá±á¬áºáááºáž HTTP áá²á·ááá¯á·áá±á¬ ááá¯áá±á¬ááºážáá±á¬ áááºááŸááºáá»á¬ážá¡ááœááºáá±á¬á· áááá·áºáá»á±á¬áºáá«á
- áááá¥á®ážá áœá¬: áááŸáááá¯ááºáá±á¬áá»áááºáááºááŸá¯á¡áá±á«ááºáá»á¬ážáá«ááŸááá±á¬ ááááá¯á¶ážáá¬áá¬ááẠáá»áááºáááºááŸá¯ááᯠáááºáá¶áááŸááá«áááºá áá¬áá¬áá»á¬ážááᯠá¡áááá·áºáá¯á¶áž ááááºáž ID á០á¡ááŒáá·áºáá¯á¶ážá¡áá ááœá±ážáá»ááºáá¬ážááŒá®ážá áááºážááẠáááºáááºááŸá áá¬áá¬á á¡áá±á¡áá¬ážááá¯á· áá¯á¶áá±áááºááŸááºáá¬ážáááºá áá¬áá¬áá áºáá¯ááẠmaxconn ááá¯á·áá±á¬ááºáááºááŸáá·áºá áá±á¬ááºáá¬áá¬ááᯠá¡áá¯á¶ážááŒá¯áááºá
- source: á¡áááºážá¡ááŒá ẠIP ááááºá á¬ááᯠáááºááºáá¯ááºááŒá®áž áááºááá·áºáá¬áá¬á០áá±á¬ááºážááá¯áá»ááºááᯠáááºáá¶áááºááᯠáá¯á¶ážááŒááºááẠáá¯ááºáá±á¬ááºáá±ááá·áº áá¬áá¬áá»á¬ážá á á¯á á¯áá±á«ááºážá¡áá±ážáá»áááºááŒáá·áº ááá¯ááºážááŒá¬ážáá¬ážáááºá á€áááºážá¡á¬ážááŒáá·áºá áá°áá®áá±á¬ client IP ááááºá á¬ááẠáá°áá®áá±á¬áá¬áá¬áá»á¬ážááá¯á· á¡ááŒá²ááœá¬ážáááºááŒá áºááŒá®áž áá¬áá¬áá»á¬ážááẠáá°áá®áá±áááºááŒá áºáááºá
á¡ááá®áá±ážááŸááºážá¡ááá·áº (á¡ááœáŸá¬ 7) ááœáẠáááºáá»áááºááœááºáá»áŸá¬ááᯠá áá áºááá·áºááœááºážááŒááºáž
á¡ááŒá¬ážáááŸáááá¯ááºáá±á¬ááœá±ážáá»ááºá áá¬ááŸá¬ ááá·áºáááºá¡ááºááá®áá±ážááŸááºážáá¡á áááºá¡ááá¯ááºážáá»á¬ážááᯠááá°áá®áá±á¬á¡áááºááŸááºáá»á¬ážáá±á«áºááœááºáááºááŸááá±á¬á¡áá«ááœáẠá¡áá¯á¶ážáááºáá±á¬ á¡ááá®áá±ážááŸááºážá¡ááœáŸá¬ (á¡ááœáŸá¬ 7) ááœááºáááºáááºááẠload balancer ááᯠconfigure áá¯ááºáááºááŒá áºáááºá á¥ááᬠ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
ááŸá±á·áááºážááẠ/blog ááŸá áááºááá·áºáááºážááŒá±á¬ááºážáá»á¬ážááŸáá·áºáá»áááºáááºááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážááá¯á¡áá¯á¶ážááŒá¯ááá·áº url_blog áá¯áá±á«áºáá±á¬ ACL á ááºážáá»ááºážááá¯ááŒá±ááŒá¬áááºá Use_backend ááẠurl_blog á¡ááŒá±á¡áá±ááŸáá·áº ááá¯ááºáá®áá±á¬ áá»áááºáááºááŸá¯áá»á¬ážááᯠblog_back áᯠá¡áááºáá±ážáá¬ážááá·áº áá±á¬ááºááœááºá០áá¶á·ááá¯ážáá±ážááá·áºááŒá®áž á¡ááŒá¬ážáá±á¬ááºážááá¯ááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá°áááºážáá±á¬ááºááœááºá០ááá¯ááºááœááºáá±á¬ááºááœááºáááºáᯠáááºááŸááºáááºá
áá±á¬ááºáá¶áááºááŒááºážááœááºá ááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááẠááááºááá²á·ááá¯á·ááẠhttp_back áá¬áá¬á¡á¯ááºá á¯ááŸá áºá á¯ááᯠáááºááŸááºáá±ážáááºá ááŸáá·áº example.com/blog ááá¯á· áá»áááºáááºááŸá¯áá»á¬ážááᯠááá¯ááºááœááºáá±ážááá·áº blog_back áá¯áá±á«áºáá±á¬ á¡áá áºáá áºáá¯á
áááºáááºáá»á¬ážááá¯ááŒá±á¬ááºážáá²ááŒá®ážáá±á¬ááºá ááá¯ááºááá¯ááááºážáááºážááŒá®áž á¡á±á¬ááºáá« command ááá¯á¡áá¯á¶ážááŒá¯á HAProxy ááá¯ááŒááºáááºá áááºáá«á
sudo systemctl restart haproxy
á áááºáá»áááºááœáẠááááá±ážáá»ááºáá»á¬áž ááá¯á·ááá¯áẠá¡ááŸá¬ážá¡ááœááºáž áááºáá±á·áá»áºáá»á¬ážááᯠáááºáá¶áááŸááá«á áááºážááá¯á·á¡ááœáẠáááºáááœá²á·á ááºážáá¯á¶ááᯠá á áºáá±ážááŒá®áž ááá¯á¡ááºáá±á¬ááá¯ááºáá»á¬ážááŸáá·áº ááá¯ááºááœá²áá»á¬ážá¡á¬ážáá¯á¶ážááᯠáááºáááºáá®ážáá¬ážááŒá±á¬ááºáž áá±áá»á¬á á±ááŒá®ážáá±á¬áẠááŒááºáááºá áááºááŒáá·áºáá«á
áááºáááºááŸá¯ááᯠá ááºážáááºááŒááºážá
HAProxy ááᯠááŒááºáááºáááºááŸááºááŒá®áž á¡áá¯ááºáá¯ááºáááºááŸáá·áºáá áºááŒáá¯ááºáááºá ááá±á¬ááºáá¬áá áºáá¯ááœáẠload balancer server á á¡áá»á¬ážáá°ááŸá¬ IP ááááºá á¬ááá¯ááœáá·áºááŒá®áž backend ááá¯á· ááŸááºáááºá áœá¬áá»áááºáááºáá¬ážááŒááºážááŸááááŸá á á áºáá±ážáá«á configuration ááŸá stats uri parameter ááẠáááºááŸááºáá¬ážáá±á¬ááááºá á¬ááœáẠá á¬áááºážááá¬ážá á¬áá»ááºááŸá¬áá áºáá¯ááᯠáááºáá®ážáá±ážáááºá
http://load_balancer_public_ip/haproxy?stats
á á¬áááºážááá¬ážá á¬áá»ááºááŸá¬ááᯠáááºááœáá·áºáá±á¬á¡áá«á ááá·áºáá¬áá¬áá»á¬ážá¡á¬ážáá¯á¶áž á¡á áááºážáá±á¬ááºááŒáá±áá«áá á áá áºááá·áºááœááºážááŸá¯ á¡á±á¬ááºááŒááºáá«áááºá
á á¬áááºážá¡ááºážá á¬áá»ááºááŸá¬ááœáẠááá·áºáááºá¡áááºááŸááºáá»á¬ážááᯠááŒá±áá¬áá¶ááẠá¡áá¯á¶ážáááºáá±á¬ á¡áá»ááºá¡áááºá¡áá»áá¯á· áá«áááºááẠáá¬áá¬ááᯠá¡áá®áá±á¬ááºáᯠá¡ááŸááºá¡áá¬ážááŒá¯áá¬ážáá«á áá¬áá¬ááᯠááœáá·áºáá¬ážááŒá±á¬ááºážááŸáá·áº áááºážá¡á¬áž load balancer á ááºá០ping áá¯ááºááá¯ááºááŒá±á¬ááºáž áá±áá»á¬áá«á á±á
á¡áááºá áááºá load balancer ááẠááá¯á¶á·ááŒááºáá«áá HTTP áá»áááºáááºááŸá¯áá»á¬ážááᯠfirewall á០ááááºááá¯á·áá¬ážááŒááºážáááŸáááŒá±á¬ááºáž áá±áá»á¬áá«á á±á HAProxy ááẠá¡á±á¬ááºáá±á¬áºááŒáá« command ááá¯á¡áá¯á¶ážááŒá¯á á¡áá¯ááºáá¯ááºááŒá±á¬ááºážááá¯áááºáž áá±áá»á¬á á±áá«-
sudo systemctl status haproxy
á áá¬ážááŸááºááŒáá·áº á á¬áááºážááá¬ážá á¬áá»ááºááŸá¬ááᯠáá¬ááœááºááŒááºážá
ááá¯á·áá±á¬áºá á á¬áááºážááá¬ážá á¬áá»ááºááŸá¬ááᯠááŸá±á·áá¯á¶ážááœáẠááá¯ážááá¯ážááŸááºážááŸááºážáá±á¬áºááŒáá¬ážáá«áá áááºážááᯠáá°ááá¯ááºážááŒáá·áºááŸá¯ááá¯ááºááẠááœáá·áºáá¬ážáá±á¬ááŒá±á¬áá·áº áá±á¬ááºážáá±á¬á¡ááŒá¶ááá¯ááºáá±á áááºážá¡á á¬ážá áááºá haproxy.cfg ááá¯ááºáá¡áá¯á¶ážááœáẠá¡á±á¬ááºáá±á¬áºááŒáá« á¥ááá¬ááᯠáá±á«ááºážááá·áºááŒááºážááŒáá·áº áááºážááᯠá áááºááŒáá¯áẠááááºáááºážáá¶áá«ááºáá áºáᯠáááºááŸááºáá±ážááá¯ááºáá«áááºá á¡á á¬ážááá¯ážáá«á á¡áá¯á¶ážááŒá¯áá°á¡ááẠО á áá¬ážááŸááºááᯠáá¯á¶ááŒá¯á¶áá±á¬á¡áá¬áá áºáá¯á¡ááœááº
listen stats
bind *:8181
stats enable
stats uri /
stats realm Haproxy Statistics
stats auth username:password
áá¬ážáááºáá°á¡ááœá²á·á¡áá áºááᯠáá±á«ááºážááá·áºááŒá®ážáá±á¬ááºá á á¬áááºážááá¬ážáá±á¬ááºáž uri ááá·áºááºááᯠááŸá±á·áá¯á¶ážá¡á¯ááºá á¯á០áááºááŸá¬ážáá«á ááŒá®ážáá±á¬á¡áá«á ááá¯ááºááá¯ááááºážáááºážááŒá®áž HAProxy ááá¯ááŒááºáááºá áááºáá«á
sudo systemctl restart haproxy
ááá¯á·áá±á¬áẠload balancer ááᯠport áá¶áá«ááºá¡áá áºááŒáá·áº áááºáá¶ááœáá·áºááŒá®áž configuration file ááœáẠáááºáááºááŸááºáá¬ážáá±á¬ username ááŸáá·áº password ááŒáá·áº áááºáá±á¬ááºáá«á
http://load_balancer_public_ip:8181
ááá·áºáá¬áá¬áá»á¬ážá¡á¬ážáá¯á¶ážááẠá¡á áááºážáá±á¬ááºááŒáá±áá±ážááŒá±á¬ááºáž áá±áá»á¬áá«á á±á ááá¯á·áá±á¬áẠááá·áºááá±á¬ááºáá¬ááŸá port áá¶áá«ááºáá»á¬ážááá«áá² load balancer IP ááá¯áá¬ááœáá·áºáá«á
http://load_balancer_public_ip/
ááá·áº back-end áá¬áá¬áá»á¬ážááœáẠá¡áááºážáá¯á¶áž áááºážáááºááá·áº á
á¬áá»ááºááŸá¬á¡áá»áá¯á·ááŸááá«áá á
á¬áá»ááºááŸá¬ááᯠááŒááºáááºá
áááºááá·áºá¡áá«ááá¯ááºáž ááá°áá®áá±á¬ host áá¶á០áá¯á¶á·ááŒááºááŸá¯áááŸáááŒá±á¬ááºáž áááááŒá¯áááá«áááá·áºáááºá áá»áááºááŸáááŸá¯á¡ááá¯ááºážááœáẠááá°áá®áá±á¬ áá»áááºááŸáááŒááºážááá¯ááºáᬠá¡ááºáááá¯áá®áááºáá»á¬ážááᯠáááºá
ááºážáá¯á¶ážááá¯ááºááẠááá¯á·ááá¯áẠá
á
áºáá±ážááá¯ááºáááºá
áááá¯á¶áž- HAProxy Load Balancer
áááºá HAProxy load balancer ááᯠá¡á±á¬ááºááŒááºá
áœá¬ áááºááŸááºááŒááºážá¡ááœáẠáá¯ááºáá°áá«áááºá á¡ááŒá±áᶠLoad Balancing á
áá
áºááá·áºááœááºážááŒááºážááŒáá·áºáááºá ááá·áºáááºá¡ááºááá®áá±ážááŸááºážá á
áœááºážáá±á¬ááºáááºááŸáá·áº áááŸáááá¯ááºááŸá¯ááᯠáááá¬áááºááŸá¬ážá
áœá¬ ááŒáŸáá·áºáááºááá¯ááºáá«áááºá á€áááºážááœáŸááºáá»ááºááẠá¡ááŒááºáááºáááºááŸá¯áááºážááœáŸááºááœáẠáá«áááºáááºááẠáá»á¬ážá
áœá¬ááá¯á
áœááºážáá±á¬ááºááá¯ááºáá±á¬ HAProxy ááŸáá·áº áá»áááºááœááºáá»áŸá¬ááŸáááŒááºážá¡ááœáẠáááá«ááºážáá
áºáá¯áá»áŸáá¬ááŒá
áºáááºá ááá°áá®áá±á¬ááœá²á·á
ááºážáá¯á¶áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á á
ááºážáááºááẠá¡ááŒá¶ááŒá¯áá«áááºá
ááá·áºáááºáááºáá±á¬ááºááŸá¯ááᯠheadroom ááŒáá·áº áá¬ááœááºááẠhost á¡áá»á¬ážá¡ááŒá¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áºá load balancer ááá¯ááºááá¯ááºá áá¡á±á¬ááºááŒááºááá·áºá¡áá»ááºááᯠáááºááŒááá¯ááºáá±ážáááºá load balancers áá»á¬ážá
áœá¬ááŒá¬ážááœáẠfloating IP ááᯠââááá·áºááœááºážááŒááºážááŒáá·áº áááºááẠááá¯ááá¯ááŒáá·áºáá¬ážáá±á¬áááŸáááá¯ááºááŸá¯ááᯠááŒáŸáá·áºáááºááá¯ááºáá«áááºá á€á¡ááŒá±á¬ááºážááᯠáá»áœááºá¯ááºááá¯á·á ááœáẠááá¯ááá¯ááááŸáááá¯ááºáá«áááºá
áááºáááºážá¡ááŒá±á¬ááºáž áá±á¬ááºáááºááŒá±á¬áá«áŠáž
source: www.habr.com