ααΆαααααααα’αααααααααΌαααΆααααα
ααα
αα»αααααα
αΆααααααΎααααααααα·ααααΆ
Load Balancing ααΊααΆαααααααααΆαααΌαα
αα½ααααααΆααααΆαααααΎααΆαααααααΆααααααα·ααΈααα ααααααααααααααα
ααΎαααΆαααΈαααΆα
αααΎα ααααααααααααααα±ααα’αααααααΎααααΆααααΌαα
ααα»α
αααα½αααααΆαα
αΌαααααΎααααΆααααααΆαααααααα
HAProxy αα·ααααααααΎαααααα·αααααΆαααΆαααααΎααααΆααααααΆα αααααΎααα·ααααα ααΆααααααααααααααΆααααΎααα αα·ααααααΆαααΆααααα»αααΎαα
ααα»αααααααΆαααΈαα½ααα ααΆα’αΆα
ααααΌαααΆαααα‘αΎααα
ααΎααΆαα
ααα
αΆαααΈαα»α
ααΆα
αααΎαααααααααΌα
ααΆ CentOS 8 αααααΎαααΉααααααααΎααΆαααααΆαααα ααααΌα
ααΆαααααααααααααα
HAProxy ααΆαα·αααααΊαααααααααααΆααααα ααααααααααΆαα ααΆα αααααααα α αΎαααΌα ααααααΆααΉαααΆααααααΌαααΆαααααΎααΎααααΈαααααα’ααΆαααΏααΆαα αα·αααααΎαααΆαααααΆαααααααα ααΆααααααααααααΆαααααααααΆααα α»αααΆαααΈαααα ααααα»αααααααααααααα αΆαα’αααΈααα αΆααααα»αααΆαααα‘αΎα HAProxy ααΆα§ααααααααα»ααα»αααααΆααα ααΎ CentOS 8 cloud host ααααααααΆαααααααααΌαα ααΆα ααα ααΆαααααΆαααΈαααααα αααααααααα’αααα
ααΆαααααΌαααΆαααΆαα»ααααααΆααααααααααα’αααα»α α’ααααα½αααααΆααααΆαααΈαααααα ααααααααΆαα αα ααΆααααΈα αα·ααααΆαααΈααααααα»ααα»αααααΆαα αααΆαααΈαααααα αααααααααΌαααααααΎαααΆααααΆαα αα ααΆααααααΆααααααα αααααααΌαααααΆαααΌα ααΆ nginx α¬ httpd ααΎααααΈααΆααααααα»αααααΆααααα»ααααΆααα½αααΆα
ααΆαααα‘αΎα HAProxy αα ααΎ CentOS 8
αααααΆααα 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 α‘αΎααα·αα
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
αααααααααααααΆαααααααα
α―αααΆαα αααα½α server_name
α’αααΈααααα½αα α
αα
αααΆαααΈαααααααα’ααααα
ααΎααααααααα·αα· αα·α 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 ααααΆααααααααααα·αα·αα α’αΆααααααΆααααααΆααααααΆααα
αααα½ααααααααΆααα»αααααΆαααααα»αααααααααααΆα
ααΆααααααΆαααααΆαααΈααααα αααα»αααααα backend α’αα»ααααΆαα±αα HAProxy ααααΎαααΆαααΈαααααΆααααααααααΆααααΆααααα»ααα»αααααΆαααααααααΆααααα½ααααααααΆααα»ααα·ααα ααααααα’αΆα ααααΎαα ααΆαα
αααα½ααααααααΆααα»αααααΆαααααΌαααΆαααααΎααΎααααΈαααααααΆααΎαααΆαααΈαααααΆαα½ααα αααα»ααααααααΆααααααααααΆααααααΆααααΈαα½ααααααΌαααΆααααααΌααα α αααααΊααΆαααααΎαααααΆααααααααααα½αα ααα½αα
- Roundrobinα αααΆαααΈαααααΈαα½ααααααΌαααΆαααααΎααααΆααααΆααααα ααΆαααααααααααααΆα αααααΊααΆαααα½ααααααααΆαααααααΌα αα·ααα»αααα·ααααααα»α αα αααααααααααααΆααααΎαααΆααααααΆαααΈααααα ααα ααα αΆαααααΎαααααΆα αααα½ααααααααΆααααααΊααΆααααααααα’αα»ααααΆαα±αααααααααααααααΆαααΈαααααααΌαααΆααααααααΌαααααΆααα
- ααααΆαααααααα·α αααα»αα αααΆαααΈααααααααΆαααΆααααααΆαααα·α αααα»αααααΌαααΆαααααΎαααΎαα Round robin ααααΌαααΆαα’αα»αααααααΆααααΆαααΈααααααααΆαααααα»αααΌα ααααΆα ααΆαααααΎαααα½ααααααααΆααααααααΌαααΆαααααΆααααααΆαααααααααααΌα ααΆ LDAP, SQL, TSE ααΆααΎα ααα»ααααααΆαα·ααααααα·αααααααΆααααααααααΈαααΌα ααΆ HTTP ααα
- ααΈαα½α: αααΆαααΈαααααααΌααααααΆααααααααααΆαααααααΆαααα½αααΆααααααΆααα αααΆαααΈαααααααΌαααΆαααααΎαααΎαααΈααααααααΆαααααααΆααααα»ααα ααααααααα»α ααααααααααααΆαααΎααα ααΈααΆαααααααααΆαααΈααααα αααα»αααα·ααααΆαα αα αααααααααΆαααΈαααααΆαααα maxconn αααΆαααΈααααααααΆααααααΌαααΆαααααΎα
- ααααα: α’αΆααααααΆα IP αααααααααΌαααΆαα αΆαα αα·ααααα αααααααααααααα»ααααααΆαααΈαααααααααα»αααααΎαααΆα ααΎααααΈαααααααΆααΎαααΆαααΈαααααΆαα½αααΉαααα½αααΆαααααΎα αα·ααΈααα α’αΆααααααΆα IP αααααααΆαααΈααααααααΌα ααααΆααΉαααααααα ααΆαααααΆαααΈαααααΌα ααααΆ ααααααααααααΆαααΈααααα ααααααα
ααΆαααα‘αΎααα»αααααΆαααααα»ααα ααααα·ααααααα·ααΈ (αααααΆααααΈ 7)
αααααΎααααααΆααα½ααααααΊααααααα ααΆαααααααααααα»ααα»αααααΆαααΎααααΈααααΎαααΆααα αααααΆαααααααα·ααΈ (αααααΆααααΈ 7) αααααΆααααααααααα ααααααααααααααααααα·ααΈααα αααααααααα’αααααΆαααΈααΆαααα ααΎαααΆαααΈαααααααααααΆα αααα’αΆα αααααα ααΆααααααΆααα·αααΆααααααΌαααααΆααααααΆαα α§ααΆα αααααα 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
αααααααΆααα»ααααααΆαα αααΆαα ACL αααα α ααΆ url_blog αααα’αα»ααααα ααααααΆααααααΆααααΆααα’αααααααΆαααααΌααααα αΆααααααΎαααα /blog α Use_backend αααααΆααβααΆβααΆαβαααααΆααβαααβααααΌαβααααΆβααΉαβαααααααα url_blog αα½αβααβααααΌαβααΆαβαααααΎβααα backend αααβααΆαβααααα blog_back α αΎαβααααΎβαααααβαααβααΆααβα’ααβααααΌαβααΆαβα αΆααβα ααβααα backend ααααΆαααΎαα
αα αααααααΆαααααα ααΆαααααααα ααΆααααααααααααααααα»ααααΆαααΈαααααΈαα http_back ααΌα ααΈαα»α αα·αααααΈαα½αα α ααΆ blog_back ααααααααααααααΆααααααΆαααα example.com/blog α
αααααΆααααΈααααΆααααααΌαααΆαααααα αααααΆαα»αα―αααΆα α αΎαα αΆααααααΎα HAProxy α‘αΎααα·ααααααααΎααΆααααααααΆααΆααααααα
sudo systemctl restart haproxy
ααααα·αααΎα’αααααα½αααΆαααΆααααααΆα α¬ααΆαααα α»αα’αα‘α»ααααα αΆααααααΎα ααΌααα·αα·αααααΎαααΆαααααααα ααΆααααααααααααα’ααααααααΆαααα½αααΆ α αΎαααααΌαααααΆααααΆα’αααααΆααααααΎαα―αααΆα αα·αααα―αααΆαα αΆαααΆα αααΆααα’αα αααααΆααααααααΆααΆαα αΆααααααΎαα‘αΎααα·ααααααααα
ααΆαααααααΆαααα‘αΎα
αα αααααα HAProxy ααααΌαααΆαααααααα ααΆαααααααα αα·αααααΎαααΆα ααΌαααΎαα’αΆααααααΆα IP ααΆααΆααααααααΆαααΈααααααα»ααα»αααααΆααα αααα»ααααααα·ααΈαα»ααα α αΎααα·αα·αααααΎαααΆααΎα’αααααΆαααααΆαααα αααααααΆααααααααααΉαααααΌααααα¬ααα αααΆαααΆαααααα uri αααα·αα·αααα»αααΆαααααααααααΎαααααααααα·αα·αα α’αΆααααααΆααααααΆααααααΆααα
http://load_balancer_public_ip/haproxy?stats
αα αααα’ααααααα»αααααααααα·αα· ααααα·αααΎαααΆαααΈαααααααα’αααααΆααα’αααααα αΆαααααααα αααααΆαααα‘αΎαααΆααααααα!
ααααααααα·αα·ααΆαααααααΆαααΆααααααααααα½αα ααα½ααααααΆααααΆαααΆαααΆααααΆαααΈααααααΆαααααα’ααα αα½αααΆαααααααααΆα‘αΎα/α α»α αα·αα ααα½αααααα ααααα·αααΎαααΆαααΈαααααααΌαααΆααααααΆααααααααα α ααααΌαααααΆααααΆαααΆαααΈαααααααΌαααΆαααΎα α αΎαα’αααα’αΆα ping ααΆααΈαααΆαααΈααα»αααααΆαααααα»αα
ααααα·αααΎαααααααααααα»αααααα»αααααα’ααααα·αααααΎααα ααΌαααααΆααααΆααΆααααααΆαα HTTP αα·αααααΌαααΆαααΆααΆααααααααααΆααααααΎαα ααααΌαααααΆααααΆ HAProxy αααα»αααααΎαααΆααααααααΎααΆααααααααΆααΆααααααα
sudo systemctl status haproxy
ααΆαααΆαααΆαααααααααα·αα·αααααααΎααΆααααααααΆαα
αααααΆαααΆαααΆααααα ααααα·αααΎααααααααα·αα·ααααΌαααΆαα α»ααααααΈαααΆαααΆαααααα αααααααΆααα»α αααααΆααΎαα αα αααααΆααααα»ααααααααααααΆααΎααααΈααΎα ααααααα ααααΆαα·ααααααΆαααα·αααα’αααααα αααα½ααααα·α α’αααα’αΆα ααααααααα αααααααΆαααααα½ααααααααααα§ααΆα αααααΆαααααααα α α»ααααα ααααα―αααΆα haproxy.cfg ααααα’αααα αααα½α username ΠΈ ααΆααααααααΆαα αααααΆααα’αααΈαα½ααααααΆααα»ααααα·ααΆαα
listen stats
bind *:8181
stats enable
stats uri /
stats realm Haproxy Statistics
stats auth username:password
αααααΆααβααΈβααααααβαααα»αβα’αααβααααΆααβααααΈβα αΎα ααΌαβααβααα uri αααα·αα·βα αΆααβα ααβααΈβαααα»α frontendα αα ααααααα αα αααααΆαα»αα―αααΆα α αΎαα αΆααααααΎα HAProxy α‘αΎααα·αα
sudo systemctl restart haproxy
αααααΆααααααΎα Load Balancer αααααααααΆαα½αααΉααααα αααααααΈ α αΎαα αΌααααααααΎαααααα’αααααααΎααααΆαα αα·αααΆααααααααΆαααααα’αααααΆααααααΆαααα αααα»αα―αααΆαααααααα ααΆααααααααα
http://load_balancer_public_ip:8181
ααααΌαααααΆααααΆαααΆαααΈαααααΆααα’ααααααα’ααααα αααααα αΆαααααααα α αΎααααααΆααααααΎαααααΆαααααααα»α IP αα»αααααΆααααααααΆααααα ααααα αααα»ααααααα·ααΈαα»αααααααα’αααα
http://load_balancer_public_ip/
ααααα·αααΎα’αααααΆααααααα
α»αα
αααΆα
αααΎααααααααα
ααΎαααΆαααΈααα back-end ααααα’ααα α’αααααΉααααααΆααααΎαααΆααΆααααααααα’ααααααα»ααααααα‘αΎααα·α α’αααααΉαααα½αααΆαααΆαααααΎαααααΈαααΆαααΈααααααα α’αααα’αΆα
ααΆααααααααα½ααααααααΆααα»αααααΆαααααααααααΆαα
αααα»ααααααααΆαααααααα
ααΆαααααααα α¬αα·αα·αααααΎα
ααα ααααΈααααα·ααααΆαα HAProxy Load Balancer
ααΌαα’αα’αααΆααα
ααααααΆαααα‘αΎα HAProxy load balancer ααααα’αααααααααααα! αααααΈααΆααΆαααΆαααα‘αΎααα»αααααΆαααααα»αααΆααΌαααααΆαααααα α’αααα’αΆα
ααααΎα±αααααααΎαα‘αΎααααΆαααααΆααααΌαααααΎαααΆα αα·αααααααΆααααααααα·ααΈααα αααααααααα’αααα ααααα»ααααααααααααααΆααααααΆααΆαααααΆαα’αααΈααΆααααα»ααα»αααααΆαααΆαα½α HAProxy αααααΆααααααααΆαα
αααΎαααΆαα’αααΈαααα’αΆα
ααααΌαααΆααααααααααααα
αααα»αααΆαααααΆαα’αααΈααΆαααα‘αΎααα ααα ααΎαααΌααααααα’αα»ααΆαααα±ααααΆαααααααΆαα½αααΆαααααααα
ααΆαααααααααααααααααααααΎ
αααααααΎαααΆαααΈαααΆα
αααΎαααΎααααΈααΆαααΆαααααΆααααααα αααααααααα’αααααΆαα½α headroom ααα Load Balancer αααα½αααΆαα
ααα’αΆα
αααα αΆαα
ααα»α
ααααΆααααΆαααα α’αααα’αΆα
ααααΎα±αααααααΎαα‘αΎααααααααααααΌαααΆαα’αΆα
ααααΆαααααααααααΆαααα‘αΎα IP α’αααααααΉααααΆαα§ααααααααα»ααα»αααααΆαα
αααΎαα α’αααα’αΆα
ααααααααααααααα’αααΈααΏαααααα
αααα»αααααααΎαα
αααααααααα’αααΈαααααα·ααααΆ
ααααα: www.habr.com