Installing the HAProxy load balancer on CentOS

The translation of the article was prepared on the eve of the start of the course “Linux Administrator. Virtualization and Clustering "








— - . HAProxy , .



HAProxy , , . Linux, CentOS 8, , Debian 8 Ubuntu 16.





HAProxy - - . HAProxy CentOS 8, -.



- . - -, nginx httpd, .



HAProxy CentOS 8



, HAProxy — , , CentOS, . , :



sudo yum info haproxy


HAProxy : , , . , HAProxy, , .



2.0, . . , .



sudo yum install gcc pcre-devel tar make -y


. , , HAProxy.



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 examples /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 , .



(layer 4)



. , , vi :



sudo vi /etc/haproxy/haproxy.cfg


. server_name , , private_ip — IP- , -. IP- UpCloud Private network Network.



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


(layer 4) http_front, 80, http_back. /haproxy?stats .



.



HAProxy , .



, . :



  • Roundrobin: . , . , .
  • Leastconn: . . , LDAP, SQL, TSE . ., , HTTP.
  • First: . , . maxconn, .
  • Source: IP- , , . , IP- , .


(layer 7)



— (layer 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, blog_back, .



: http_back, , , blog_back, example.com/blog.



HAProxy :



sudo systemctl restart haproxy


- , , , .





HAProxy , IP- , . stats uri .



http://load_balancer_public_ip/haproxy?stats


, , !





-, / . , , .



, , HTTP- . , HAProxy :



sudo systemctl status haproxy




, , , . , haproxy.cfg. username password - :



listen stats
   bind *:8181
   stats enable
   stats uri /
   stats realm Haproxy\ Statistics
   stats auth username:password


stats uri . , HAProxy.



sudo systemctl restart haproxy


, .



http://load_balancer_public_ip:8181


, - , IP - .



http://load_balancer_public_ip/


- , , , , . .



: HAProxy



HAProxy! -. HAProxy, , , . , HAProxy, .



- , . , IP . IP- UpCloud.






« Linux. »***







All Articles