HAProxy : HTTP Load Balancing
HAProxy : HTTP Load Balancing 
2015/02/18 
 | 
Install HAProxy to configure Load Balancing Server. 
This example based on the environment like follows.        |
-------+-----------------------------------------------
       |
       +-------------------+--------------------+
       |10.0.0.30          |10.0.0.31           |10.0.0.32
 +-----+-----+     +-------+------+     +-------+------+
 | Frontend  |     |   Backend#1  |     |   Backend#2  |
 |  HAProxy  |     |  Web Server  |     |  Web Server  |
 +-----------+     +--------------+     +--------------+
 | 
Configure Servers that HTTP connection to HAProxy Server is forwarded to backend Web Servers. 
 | |
| [1] | Install HAProxy. | 
| [root@dlp ~]#  
yum -y install haproxy 
 | 
| [2] | Configure HAProxy. | 
| [root@dlp ~]#  
mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.org  
[root@dlp ~]#  
vi /etc/haproxy/haproxy.cfg 
# create new 
global 
      # for logging section 
    log         127.0.0.1 local2 info
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
      # max per-process number of connections 
maxconn 256 
      # process' user and group 
    user        haproxy
    group       haproxy
      # makes the process fork into background 
daemon defaults 
      # running mode 
mode http 
      # use global settings 
log global 
      # get HTTP request log 
option httplog 
      # timeout if backends do not reply 
timeout connect 10s 
      # timeout on client side 
timeout client 30s 
      # timeout on server side 
timeout server 30s 
# define frontend ( set any name for "http-in" section ) 
frontend http-in 
      # listen 80 
bind *:80 
      # set default backend 
default_backend backend_servers 
      # send X-Forwarded-For header 
option forwardfor 
# define backend 
backend backend_servers 
      # balance with roundrobin 
balance roundrobin 
      # define backend servers 
    server             www01 10.0.0.31:80 check
    server             www02 10.0.0.32:80 check
    
systemctl start haproxy  
[root@dlp ~]# 
systemctl enable haproxy  
 | 
| [3] | Configure Rsyslog to get logs for HAProxy. | 
[root@dlp ~]#  
vi /etc/rsyslog.conf 
# line 15,16: uncomment, lne 17: add 
$ModLoad imudp $UDPServerRun 514 
$AllowedSender UDP, 127.0.0.1 
# line 54: change like follows 
*.info;mail.none;authpriv.none;cron.none 
,local2.none 
   /var/log/messageslocal2.* /var/log/haproxy.log 
systemctl restart rsyslog  
 | 
| [4] | Change httpd settings on Backends to logging X-Forwarded-For header. | 
[root@www ~]#  
vi /etc/httpd/conf/httpd.conf 
# line 196: change like follows 
LogFormat " 
\"%{X-Forwarded-For}i\" 
 %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
systemctl restart httpd  
 | 
| [5] | Make sure all works fine to access to the frontend server from a Client with HTTP like follows. | 
Comentários
Postar um comentário