Linux安装HAProxy(CentOS 7)

时间:2024-10-22 07:36:15

一、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的解压

  1. [root@linux-centos7 ~]# cd /usr/local/src/
  2. [root@linux-centos7 src]# tar zxvf haproxy-1.8.

 

四、HAProxy的安装

  1. [root@linux-centos7 src]# cd haproxy-1.8.8
  2. [root@linux-centos7 haproxy-1.8.8]# uname -r
  3. 3.10.0-514.26.2.el7.x86_64
  4. [root@linux-centos7 haproxy-1.8.8]# make TARGET=linux310 ARCH=x86_64 PREFIX=/usr/local/haproxy
  5. [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启动的配置。

  1. [root@linux-centos7 haproxy-1.8.8]# cd /usr/local/haproxy
  2. [root@linux-centos7 haproxy]# mkdir conf
  3. [root@linux-centos7 haproxy]# ls
  4. conf doc sbin share
  5. [root@linux-centos7 haproxy]# cd conf/
  6. [root@linux-centos7 conf]# vim

配置内容如下:

  1. listen admin_stats
  2. bind 0.0.0.0:1080
  3. mode http
  4. option httplog
  5. maxconn 10
  6. stats refresh 30s
  7. stats uri /stats
  8. stats realm XingCloud\ Haproxy
  9. stats auth admin:admin
  10. stats auth Frank:Frank
  11. stats hide-version
  12. stats admin if TRUE
  13. frontend viid_local_cluster
  14. bind 0.0.0.0:18023
  15. mode http
  16. option httplog
  17. option forwardfor
  18. option httpclose
  19. log global
  20. default_backend htmpool
  21. backend htmpool
  22. mode http
  23. option redispatch
  24. option abortonclose
  25. balance roundrobin
  26. cookie SERVERID insert indirect nocache
  27. server serverd1 10.192.235.23:8023 check cookie server1 weight 3 check inter 2000 rise 2 fall 3
  28. 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、验证一下是否启动成功:

  1. [root@linux-centos7 conf]# lsof -i :1080
  2. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  3. haproxy 13263 nobody 3u IPv4 994405 0t0 TCP *:socks (LISTEN)
  4. [root@linux-centos7 conf]#

3、管理页面展示,地址为安装Haproxy的主机地址,路径类似如下:10.192.235.23:1080/stats;

账号和密码默认均为:admin

4、停止:

  1. [root@linux-centos7 conf]# ps -ef|grep haproxy
  2. nobody 13263 1 0 19:16 ? 00:00:00 /usr/haproxy/sbin/haproxy -f /usr/haproxy/conf/
  3. root 14579 12890 0 20:21 pts/1 00:00:00 grep --color=auto haproxy
  4. [root@linux-centos7 conf]# kill -9 13263