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
不過, 就直接啟動, 沒有做什麼任何的事情, 再來就來看看設定檔, 來把想做的事情設一設~