使用Haproxy搭建Web群集

1、Haproxy概述。

        Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多,如LVS和Nginx。相比较而言,LVS性能最好,但是搭建相对复杂;Nginx的upstream模块支持群集功能,但是对群集节点健康检查功能不强,性能没有Haproxy号。

1.2、HTTP请求

        通过URL访问网站使用的协议是HTTP协议,此类请求一般称为HTTP请求。HTTP请求的方式分为GET方式和POST方式。当使用浏览器访问某一个URL,会根据请求URL返回状态码,通常正常的状态码为2XX、3XX(如200、300),如果出现异常会返回4XX、5XX(如400、500)。

1.3、负载均衡常用调度算法。

1)RR。RR算法是最简单最常用的一种算法,即轮询调度。

2)LC。LC算法即最小连接数算法,根据后端的节点连接数大小动态分配前端请求。

3)SH。SH即基于来源访问调度算法。

2、案例环境

组件包:Haproxy nginx(httpd)

设备

IP

备注

Centos01

192.168.136.10

Node1

Centos02

192.168.136.20

Web1

Centos03

192.168.136.30

Web2

2.1、编译安装Haproxy

上传Haproxy的软件包到node1并安装组件

[root@nodeAAA ~]# yum -y install pcre-devel bzip2-devel g*** g***-c++ make

[root@nodeAAA ~]# tar zxf haproxy-1.5.19.tar.gz 

[root@nodeAAA ~]# cd haproxy-1.5.19
[root@nodeAAA haproxy-1.5.19]# make TARGET=linux26 && make install


建立Haproxy的配置文件

[root@nodeAAA haproxy-1.5.19]# mkdir /etc/haproxy
[root@nodeAAA haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/


修改配置文件,添加Web节点
[root@nodeAAA haproxy-1.5.19]# vim /etc/haproxy/haproxy.cfg 

listen  WEB *:80
        option  httpchk GET /index.html
        balance roundrobin
        server  inst1 192.168.136.20:80 check inter 2000 fall 3
        server  inst2 192.168.136.30:80 check inter 2000 fall 3


创建群集根目录

[root@nodeAAA ~]# mkdir /usr/share/haproxy


添加Haproxy为系统服务

[root@nodeAAA ~]# cd haproxy-1.5.19
[root@nodeAAA haproxy-1.5.19]# cp examples/haproxy.init /etc/init.d/haproxy
[root@nodeAAA haproxy-1.5.19]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
[root@nodeAAA haproxy-1.5.19]# chmod +x /etc/init.d/haproxy 
[root@nodeAAA haproxy-1.5.19]# chkconfig --add /etc/init.d/haproxy 
[root@nodeAAA haproxy-1.5.19]# systemctl start haproxy

2.2、编译安装Nginx服务器。 

将Nginx软件包上传到web1和web2,并安装组件

[root@nodeBBB ~]# yum -y install pcre-devel zlib-devel g*** g***-c++ make


创建Nginx用户

[root@nodeBBB ~]# useradd -M -s /sbin/nologin nginx


解包然后编译安装

[root@nodeBBB ~]# tar zxf nginx-1.24.0.tar.gz 
[root@nodeBBB ~]# cd nginx-1.24.0
[root@nodeBBB nginx-1.24.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

[root@nodeBBB nginx-1.24.0]# make && make install


创建主程序链接文件

[root@nodeBBB nginx-1.24.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/


修改测试页面的内容

[root@nodeBBB ~]# vim /usr/local/nginx/html/index.html 
启动Nginx

[root@nodeBBB ~]# nginx

2.3、验证测试

使用浏览器访问http://192.168.136.10(调度服务器)

刷新网页即可轮询切换

2.4、Haproxy日志

修改Haproxy配置文件中的日志配置

[root@nodeAAA ~]# vim /etc/haproxy/haproxy.cfg 
global
        log /dev/log    local0
        log /dev/log    local1 notice


配置Haproxy日志

[root@nodeAAA ~]# vim /etc/rsyslog.d/haproxy.conf
if ($programname == 'haproxy' and $syslogseverity-text == 'info') then -/var/log/haproxy/haproxy-info.log
& ~
if ($programname == 'haproxy' and $syslogseverity-text == 'notice') then -/var/log/haproxy/haproxy-notice.log
& ~


创建日志目录

[root@nodeAAA ~]# vim /etc/rsyslog.d/haproxy.conf

[root@nodeAAA ~]# mkdir /var/log/haproxy


重新启动服务
[root@nodeAAA ~]# systemctl restart haproxy
[root@nodeAAA ~]# systemctl restart rsyslog

 

转载请说明出处内容投诉
CSS教程_站长资源网 » 使用Haproxy搭建Web群集

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买