一、HAProxy简介
HAProxy是一个使用C语言编写的*及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。
HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户空间(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。
以下为HAProxy配置两台服务器,其地址为:
服务器1:10.192.235.23:8023
服务器2:10.192.235.211:8023
HAProxy安装地址:10.192.235.23:18023
二、HAProxy的下载
下载地址1:/
下载地址2:/repo/pkgs/haproxy/
这里,我用下载地址2进行下载;我们选择一个稳定的版本1.8.8
三、HAProxy的解压
-
[root@linux-centos7 ~]# cd /usr/local/src/
-
[root@linux-centos7 src]# tar zxvf haproxy-1.8.
四、HAProxy的安装
-
[root@linux-centos7 src]# cd haproxy-1.8.8
-
[root@linux-centos7 haproxy-1.8.8]# uname -r
-
3.10.0-514.26.2.el7.x86_64
-
[root@linux-centos7 haproxy-1.8.8]# make TARGET=linux310 ARCH=x86_64 PREFIX=/usr/local/haproxy
-
[root@linux-centos7 haproxy-1.8.8]# make install PREFIX=/usr/local/haproxy
参数说明:
- TARGET=linux310,内核版本,使用uname -r查看内核,如:3.10.0-514.26,此时该参数就为linux310;kernel 大于2.6.28的可以用:TARGET=linux2628;
- ARCH=x86_64,系统位数;
- PREFIX=/usr/local/haprpxy #/usr/local/haprpxy,为haprpxy安装路径
五、配置文件的修改
1.79及以后的版本解压后文件内就没有文件;由于没有配置其他的服务器,这里就简单的添加一个可以让Haproxy启动的配置。
-
[root@linux-centos7 haproxy-1.8.8]# cd /usr/local/haproxy
-
[root@linux-centos7 haproxy]# mkdir conf
-
[root@linux-centos7 haproxy]# ls
-
conf doc sbin share
-
[root@linux-centos7 haproxy]# cd conf/
-
[root@linux-centos7 conf]# vim
配置内容如下:
-
listen admin_stats
-
bind 0.0.0.0:1080
-
mode http
-
option httplog
-
maxconn 10
-
stats refresh 30s
-
stats uri /stats
-
stats realm XingCloud\ Haproxy
-
stats auth admin:admin
-
stats auth Frank:Frank
-
stats hide-version
-
stats admin if TRUE
-
-
frontend viid_local_cluster
-
bind 0.0.0.0:18023
-
mode http
-
option httplog
-
option forwardfor
-
option httpclose
-
log global
-
default_backend htmpool
-
-
backend htmpool
-
mode http
-
option redispatch
-
option abortonclose
-
balance roundrobin
-
cookie SERVERID insert indirect nocache
-
server serverd1 10.192.235.23:8023 check cookie server1 weight 3 check inter 2000 rise 2 fall 3
-
server serverd2 10.192.235.211:8023 check cookie server2 weight 6 check inter 2000 rise 2 fall 3
说明(配置时注意修改以下参数):
1、listen admin_stats配置管理页面;bind 0.0.0.0:1080为Haproxy绑定管理页面;
2、frontend viid_local_cluster表示监听的前端请求地址,绑定的请求地址为:bind 0.0.0.0:18023
3、backend htmpool表示后端的真实服务器;其地址为10.192.235.23:8023和10.192.235.211:8023
六、启动和停止HAProxy
1、启动:
[root@linux-centos7 conf]# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/
2、验证一下是否启动成功:
-
[root@linux-centos7 conf]# lsof -i :1080
-
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
-
haproxy 13263 nobody 3u IPv4 994405 0t0 TCP *:socks (LISTEN)
-
[root@linux-centos7 conf]#
3、管理页面展示,地址为安装Haproxy的主机地址,路径类似如下:10.192.235.23:1080/stats;
账号和密码默认均为:admin
4、停止:
-
[root@linux-centos7 conf]# ps -ef|grep haproxy
-
nobody 13263 1 0 19:16 ? 00:00:00 /usr/haproxy/sbin/haproxy -f /usr/haproxy/conf/
-
root 14579 12890 0 20:21 pts/1 00:00:00 grep --color=auto haproxy
-
[root@linux-centos7 conf]# kill -9 13263