haproxy 的配置文件
global log 127.0.0.1 local0 #log 127.0.0.1 local1 notice #log loghost local0 info maxconn 4096 chroot /home/develop/haproxy uid 99 gid 504 #develop group id daemon nbproc 1 pidfile /home/develop/haproxy/logs/haproxy.pid #debug #quiet defaults log 127.0.0.1 local3 mode http option httplog option httpclose option dontlognull option forwardfor option redispatch retries 2 maxconn 2000 balance roundrobin stats uri /haproxy-stats contimeout 5000 clitimeout 50000 srvtimeout 50000 listen web_proxy 192.168.92.128:8888 option httpchk GET /ping.jsp server s1 192.168.92.128:8871 weight 3 check server s2 192.168.92.128:8072 weight 3 check server s3 192.168.92.128:8073 weight 3 check
一 、查看linux版本:
uname -a
返回:
Linux develop 2.6.18-238.el5xen #1 SMP Thu Jan 13 16:41:45 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
内核版本决定了下面 TARGET的值,在安装文件中有各种版本的TARGET的值
二、 安装haproxy : prefix为安装路径
make TARGET=linux26 prefix=/home/develop/haproxy install
三、查看是否安装成功
执行命令: /home/develop/haproxy/sbin/haproxy -v
返回 :
HA-Proxy version 1.4.22 2012/08/09
Copyright 2000-2012 Willy Tarreau <w@1wt.eu>
证明haproxy安装成功
四、配置启动程序的用户组
vim etc/group
dba:x:501:oracle
oper:x:502:oracle
work:x:503:
develop:x:504:
本系统中develop 的用户组编号为504,将该值填写到 haproxy.cfg 的global节的gid中说明可以由develop用户组进行启动haproxy
五、启动命令
su - develop
cd /home/develop/haproxy/sbin
执行 :/home/develop/haproxy/sbin/haproxy -f /home/develop/haproxy/sbin/haproxy.cfg
报错:
[WARNING] 316/142423 (7814) : [/home/develop/haproxy/sbin/haproxy.main()] Cannot raise FD limit to 8206.
[ALERT] 316/142423 (7814) : [/home/develop/haproxy/sbin/haproxy.main()] Cannot create pidfile /home/haproxy/logs/haproxy.pid
mkdir /home/develop/haproxy/logs
就可以了
六 、查看haproxy状态,要保证httpd已经启动 , service httpd start &
http://192.168.92.128:8888/haproxy-stats
HAProxy 錯誤排除
在上述啟動時, 若有出現下述錯誤:
Starting haproxy: [ALERT] 015/191034 (15631) : Starting proxy webfarm: cannot bind socket...on both load balancers
或
[ALERT] 056/103843 (1358) : Starting proxy www-balancer: cannot bind socket
解法
- 暫時解法, 直接先修改設定, 讓它先跑起來:
sysctl -e net.ipv4.ip_nonlocal_bind=1
- 永久解法, 讓開機時自動設此參數.
- sysctl -a | grep nonlocal # 看是否已經有設定此參數
- vim /etc/sysctl.conf # 最下面加入 net.ipv4.ip_nonlocal_bind=1
不過, 就直接啟動, 沒有做什麼任何的事情, 再來就來看看設定檔, 來把想做的事情設一設~