haproxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。
首先要把selinux关掉 不知道为什么这个以后在研究 然后为了方便防火墙也关了
一、haproxy下载
去官网:http://www.haproxy.org/下载
或者在选择好版本后,使用wget下载,比如这里使用的是1.7.5
wget http://www.haproxy.org/download/1.7/src/haproxy-1.7.5.tar.gz
- 1
二、安装haproxy
查看内核版本
uname -r
- 1
根据内核版本选择编译参数:
关于编译参数更详细的参见:https://github.com/haproxy/haproxy
解压haproxy,并安装
tar xf haproxy-1.7.5.tar.gz
cd haproxy-1.7.5
make TARGET=linux2628 PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy
安装成功后,查看版本
/usr/local/haproxy/sbin/haproxy -v
复制haproxy文件到/usr/sbin下
因为下面的haproxy.init启动脚本默认会去/usr/sbin下找,当然你也可以修改,不过比较麻烦。
cp /usr/local/haproxy/sbin/haproxy /usr/sbin/
复制haproxy脚本,到/etc/init.d下
cp ./examples/haproxy.init /etc/init.d/haproxy
chmod 755 /etc/init.d/haproxy
创建系统账号
useradd -r haproxy
创建配置文件
mkdir /etc/haproxy
vi /etc/haproxy/haproxy.cfg
在配置文件haproxy.cfg中添加如下设置:
global
maxconn 4096
daemon
chroot /usr/local/haproxy
# pidfile /var/run/haproxy.pid
#debug
#quiet
user haproxy
group haproxy
defaults
log global
mode http
option httplog
option dontlognull
log 127.0.0.1 local0
retries 3
option redispatch
maxconn 2000
#contimeout 5000
#clitimeout 50000
#srvtimeout 50000
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
listen admin_stats
bind 0.0.0.0:8888
mode http
stats uri /dbs
stats realm Global\ statistics
stats auth admin:admin
listen proxy-mysql
bind 0.0.0.0:23306
mode tcp
balance roundrobin
option tcplog
# option mysql-check user haproxy #在mysql中创建无任何权限用户haproxy,且无密码
server MySQL1 192.168.127.101:3306 check weight 1 maxconn 2000
server MySQL2 192.168.127.102:3306 check weight 1 maxconn 2000
option tcpka
打开rsyslog配置:
vi /etc/rsyslog.conf
去掉下面两行前面的#号
$ModLoad imudp
$UDPServerRun 514
并添加下面一行
local3.* /var/log/haproxy.log
重启rsyslog
systemctl restart rsyslog
# centos 6 中木有systemctl命令,可以使用下面的命令
# service rsyslog restart
启动haproxy
service haproxy start
启动成功后,界面如下: