使用Haproxy搭建Web群集

简介

        在前面已经学习了使用Nginx、LVS做负载均衡群集,它们都具有各自的特点,本章将要介绍另一款比较流行的群集调度工具Haproxy。首先介绍负载均衡常用调度算法,然后介绍Haproxy搭建Web群集的方法,最后介绍Haproxy的参数优化和日志配置。

一、Haproxy概述

        Haproxy 是目前比较流行的一种群集调度工具,同类群集调度工具有很多,如LVS和Nginx。相比较而言,LVS.性能最好,但是搭建相对复杂:Nginx的upstream模块支持群集功能,但是对群集节点健康检查功能不强,性能没有Haproxy 好。Haproxy 官方网站是http://www.haproxy.org/。本案例介绍使用Haproxy及Nginx搭建一套Web群集。

1.HTTP 请求

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

2.负载均衡常用调度算法

LVS、Haproxy、Nginx最常用的调度算法有三种,如下所述

  1. RR (Round Robin):RR算法是最简单最常用的一种算法,即轮询调度。
  2. LC (Least Connections):LC 算法即最小连接数算法,根据后端的节点连接数大小动态分配前端请求。
  3. SH(Source Hashing):SH即基于来源访问调度算法,此算法用于一些有Session会话记录在
    服务器端的场景,可以基于来源的IP、Cookie等做群集调度。
3.常见的Web群集调度器

        目前常见的Web群集调度器分为软件和硬件,软件通常使用开源的LVS、Haproxy、Nginx、硬件一般使用比较多的是F5,也有很多人使用国内的一些产品,如梭子鱼、绿盟等。

二、实验案例

实验环境:虚拟机 3台 centos7.9、网卡NAT模式 数量 1、组件包Haproxy nginx(httpd)

设备

IP

备注

Centos01

192.168.19.10

Node1

Centos02

192.168.19.20

Web1

Centos03

192.168.19.30

Web2

1.准备工作

关闭防火墙

[root@love ~]# systemctl disable firewalld --now

关闭Selinux

[root@love ~]# setenforce 0
[root@love ~]# sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

配置IP DNS 网关

[root@love ~]# nmtui
2.编译安装Haproxy

安装组件node1配置

[root@love ~]# yum -y install pcre-devel bzip2-devel gcc gcc-c++ make

解压并安装haproxy

[root@love haproxy-1.5.19]# make TARGET=linux && make install

创建主配置文件

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

添加群集Web配置信息

[root@love ~]# vim /etc/haproxy/haproxy.cfg
listen  web *:80
        option  httpchk GET /index.html
        balance roundrobin
        server  inst1 192.168.19.20:80 check inter 2000 fall 3
        server  inst2 192.168.19.30:80 check inter 2000 fall 3

添加haproxy系统服务

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

启动服务

[root@love init.d]# systemctl start haproxy
3.Nginx节点配置

安装组件

[root@love ~]# yum -y install pcre-devel zlib-devel gcc gcc-c++ make

创建Nginx用户

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

解压并安装nginx

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

创建主程序连接文件

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

添加测试页面web1和web2

nginx1
[root@love nginx-1.24.0]# echo "<h1>AAAAA</h1>" > /usr/local/nginx/html/test.html
nginx2
[root@love nginx-1.24.0]# echo "<h1>BBBBB</h1>" > /usr/local/nginx/html/test.html

启动服务

[root@love nginx-1.24.0]# nginx 

验证测试

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值