á¨á˝áá áľááá á¨á°áááá á áľáá
ááą ááááŞáŤ ááá áá ááá˘
á¨áááľ áááŁá á áá°á áááá˝ á¨á ááľ á áááááľ ááłá¨áť á ááľ ááĽáĽ á˛áŤááᥠá¨áľá áá°áá áŞáŤáá˝á á á ááŤáł á áľá°áááá˝ áá áááľááľ á¨á°ááá° áááľá ááá˘
HAProxy áááá á¨ááĽáľ á á áááá ááááťá¸áľáŁ á¨ááĽá áľ áá áá á¨á áááľá¨áᣠá¨ááá˝ ááá áááááľ áĽá áááááá áá á ááĽáľá á¨áá á á áá á¨ááŤá áááá ἠááᢠáĽáá° CentOS 8 áŁá á¨á°ááŤáŠ á¨ááááľ áľáááśá˝ áá ááŤá áá˝ááᣠá áá
áááŞáŤ áá áĽáá°áŠáŤáá áĽáá˛áá áľáááśá˝
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 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
á¨áá¨á°ááľá áááá˝ áá° ááá áŤááᢠá°áŤ á¨á áááá_áľá á áľáłá˛áľá˛ááľ ááš áá á ááááŽá˝áá ááĽáŤáľ áŤáá áľ, áĽá á¨áá_á áá - á¨áľá áľáŤááá ááááŤáľ á¨áááááľ á¨á ááááŽá˝ á¨áá á áá á áľáŤáťáá˝á˘ á¨áá á áá á áľáŤáťáá˝á áá¨áľ áá˝ááá˘
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 á¨áá á áłá˝ áŤáá áľááá áá áĽá¨á°áŤ áááá áŤá¨áááĄáĄ
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 áá áááá á¨ááŤá ááá˘áŤ áĽáť ááᢠá áá áá á¨á°ááŤáŠ áá
áŽá˝á áááá¨á áĽááááŤáá
á¨áľá á áááááľáá á áá ááá ááá á á
áĽá á áľá°áááá˝á á áá áá á¨ááľ ááá áŤáą á ááá á¨ááľááľ ááĽáĽá áááá áá˝ááᢠá°ááłáá á ááá á á ááŤáł á¨áááľ áááłá¨áŞáŤáá˝ ááŤá¨á á áááááľ á¨áá°á á°ááááľá á¨á áá ááťáťá áá˝ááᢠáľááá
ááłá á áĽá ááľáĽ á¨á áá ááá
áá˝áá
áľá áŽááą á°á¨ááŞ
ááá: hab.com