忘不了那一天:haproxy_keepalived安装配置

来源:百度文库 编辑:中财网 时间:2024/05/05 22:44:37
haproxy_keepalived安装配置

参照《ubuntu server最佳方案》,学习配置了haproxy的负载均衡。留个简单的安装配置记录,然后继续深入学习。

安装环境:ubuntu server

网络环境
Java代码  
  1.    Load Balancer 1: lb1.test.com, IP address: 192.168.1.10 eth0   
  2.    Load Balancer 2: lb2.test.com, IP address: 192.168.1.11 eth0   
  3.    Web Server 1: web1.test.com, IP address: 192.168.1.12 eth0   
  4.    Web Server 2: web2.test.com, IP address: 192.168.1.13 eth0   
  5.    lb1 and lb2共享虚拟IP: 192.168.1.100处理请求  


一、 web server的安装配置
以下操作在两台web server上同时做
1. apache安装
Java代码  
  1. sudo apt-get install apache2 libapache2-mod-php5 php5-mysql  


2. 修改apache中日志记录,以便可以记录client的ip而不是lb的
Java代码  
  1. vi /etc/apache2/apache2.conf   
  2. 把logFormat的%h改为%{X-Forwarded-For}i  


3. 在你网站目录创建检测文件,用于haproxy检测web server是否存活
Java代码  
  1. echo “It works!” > /var/www/hachecker.php   
  2. 修改你的虚拟主机配置文件记录access日志部分,不记录hachecker.php的访问日志   
  3. SetEnvIf Request_URI “^/hachecker\.php$” dontlog   
  4. CustomLog /var/log/apache2/access.log combined env=!dontlog  


4. 重启apache
Java代码  
  1. /etc/init.d/apache2 restart  



二、 Load Balancer(HAProxy)安装配置
以下操作在两台Load Balancer上同时做
1. 安装HAProxy
Java代码  
  1. sudo apt-get install haproxy  


2. 配置HAProxy
Java代码  
  1. sudo mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg_BAK   
  2. sudo vi /etc/haproxy/haproxy.cfg   
  3. 加入如下:   
  4. global   
  5.     log 127.0.0.1   local0   
  6.     log 127.0.0.1   local1 notice   
  7.     #log loghost    local0 info   
  8.     maxconn 4096  
  9.     #chroot /usr/share/haproxy   
  10.     user haproxy   
  11.     group haproxy   
  12.     daemon   
  13.     #debug   
  14.     #quiet   
  15.   
  16. defaults   
  17.     log global   
  18.     mode    http   
  19.     option  httplog   
  20.     option  dontlognull   
  21.     retries 3  
  22.     option redispatch   
  23.     maxconn 2000  
  24.     contimeout  5000  
  25.     clitimeout  50000  
  26.     srvtimeout  50000  
  27.   
  28. listen  webfarm 192.168.1.100:80  
  29.     stats  enable   
  30.     stats  auth isends:isends   
  31.     balance roundrobin   
  32.     cookie  JSESSIONID prefix   
  33.     option   forwardfor   
  34.     option   httpchk HEAD /hachecker.php   
  35.     server  web1 192.168.1.12:80 cookie A check   
  36.     server  web2 192.168.1.13:80 cookie B check   
  37.   
  38.     option  httpclose       # disable keep-alive   
  39.     #option  checkcache     # block response if set-cookie & cacheable   
  40.        
  41.     #errorloc   502 http://192.168.114.58/error502.html   
  42.     #errorfile  503 /etc/haproxy/errors/503.http   
  43.     errorfile   400 /etc/haproxy/errors/400.http   
  44.     errorfile   403 /etc/haproxy/errors/403.http   
  45.     errorfile   408 /etc/haproxy/errors/408.http   
  46.     errorfile   500 /etc/haproxy/errors/500.http   
  47.     errorfile   502 /etc/haproxy/errors/502.http   
  48.     errorfile   503 /etc/haproxy/errors/503.http   
  49.     errorfile   504 /etc/haproxy/errors/504.http  

#retries--web无法访问的重试次数
#cookie JSESSIONID prefix--处理session
#option forwardfor--转发client的IP给web server(X-Forwarded-For)

3. 调整系统参数、开机启动HAProxy
Java代码  
  1. sudo vi /etc/sysctl.conf   
  2. 加入一行:   
  3. net.ipv4.ip_nonlocal_bind=1  
  4. 执行sudo sysctl –p使之生效   
  5. 开机启动HAProxy   
  6. vi /etc/default/haproxy   
  7. 设置ENABLED=1  
  8. ENABLED=1  


4. 启动haproxy
Java代码  
  1. sudo /etc/init.d/haproxy start  



三、 Keepalived安装配置
lb1和lb2的HAProxy已经配置好并监听IP地址:192.168.1.100。Keepalived用priority参数把bl1和bl2分配为“主服务器”和“从服务器”。正常情况下由主服务器监听IP地址并提供服务。
以下操作在两台Load Balancer上同时做,但是priority参数主服务器为101,从服务器为100
1. 安装Keepalived
Java代码  
  1. sudo apt-get install keepalived  



2. 配置Keepalived
Java代码  
  1. sudo vi /etc/keepalived/keepalived.conf   
  2. 配置如下:   
  3. vrrp_script chk_haproxy {   
  4.     script "killall -0 haproxy"  
  5.     interval 2  
  6.     weight 2  
  7. }   
  8.   
  9. vrrp_instance VI_1 {   
  10.     state MASTER   
  11.     interface eth0   
  12.     virtual_router_id 51  
  13.     priority 100  
  14.     virtual_ipaddress {   
  15.         192.168.1.100  
  16.     # optional label. should be of the form "realdev:sometext" for  
  17.     # compatibility with ifconfig.   
  18.     #192.168.200.18 label eth0:1  
  19.     }   
  20.     track_script {   
  21.         chk_haproxy   
  22.     }   
  23. }  


3. 启动Keepalived
Java代码  
  1. sudo /etc/init.d/keepalived start   
  2. 查看ip是否绑定正确,bl1绑定IP:192.168.1.100。bl2不绑定该IP   
  3. ip addr sh eth0  


四、 其他
HAProxy情况查询:用上面设置的帐号密码登陆 http://192.168.1.100/haproxy?stats
HAProxy中文网站
附件是haproxy的详细配置文档
  • haproxy配置文档.rar (47.7 KB)