一、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:http://www.haproxy.org/
下载地址2:http://pkgs.fedoraproject.org/repo/pkgs/haproxy/
这里,我用下载地址2进行下载;我们选择一个稳定的版本1.8.8
三、HAProxy的解压
[root@linux-centos7 ~]# cd /usr/local/src/
[root@linux-centos7 src]# tar zxvf haproxy-1.8.8.tar.gz
四、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.cfg文件;由于没有配置其他的服务器,这里就简单的添加一个可以让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 haproxy.cfg
配置内容如下:
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/haproxy.cfg
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/haproxy.cfg
root 14579 12890 0 20:21 pts/1 00:00:00 grep --color=auto haproxy
[root@linux-centos7 conf]# kill -9 13263
来源:CSDN
作者:GoldenChord
链接:https://blog.csdn.net/ramblingmelody/article/details/90722004