IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 使用Haproxy搭建集群 -> 正文阅读

[系统运维]使用Haproxy搭建集群

Haproxy背景

  • Haproxy是用c语言编写的自由开放源代码的软件,提供高可用,负载均衡,和基于tcp和http的应用程序代理
  • Haproxy特别适合负载很大的web站点,这些站点通常需要会话保持或者七层处理,Haproxy运行在当前的硬件上,可以支持上万的并发请求,并且使得web服务器不会被暴露在外

常见的web集群调度器

硬件

通常使用较多的是F5,国内使用较多是梭子鱼,绿盟等

软件

通常使用开源的Haproxy,nginx,lvs

Haproxy作为高性能负载均衡器的主要有点

  • Haproxy在负载均衡的速度和并发处理上优于nginx
  • Haproxy支持虚拟主机,工作在4,7层
  • Haproxy有会话保持,cookie引导等工作
  • Haproxy支持以url的方式检测后端服务器状态
  • Haproxy可以对mysql进行负载均衡
  • Haproxy支持很多负载均衡算法:轮询。加权轮询,原地址保持,请求URL,根据cookie

Haproxy算法介绍

  • RR(轮询):轮询调度
  • LC(最小连接):根据后端节点连接数动态分配前端请求
  • SH(基于访问调度算法):用于一些有会话记录在服务器端的场景

三种web集群调度器的差别

Haproxy

  • 支持八种负载均衡策略
  • 仅做负载均衡软件使用,在高并发情况下性能优于nginx
  • 支持URL健康检查,支持会话保持

nginx

  • 支持正则表达式
  • 对网络稳定性要求不高
  • 只支持基于端口检查
  • 不支持会话保持
  • 反向代理能力强

lvs

  • 应用范围广泛
  • 在四层做分发作用,负载均衡能力强
  • 只能基于四层端口转发

Haproxy集群部署

实验环境:
Haproxy服务器: Haproxy:12.0.0.8/8
nginx服务器:nginx01:12.0.0.13/8
nginx服务器:nginx02:12.0.0.10/8

部署Haproxy服务器

  • 先解压包,布置依赖环境
[root@ha ~]# tar zxvf haproxy-1.5.19.tar.gz
[root@ha ~]# yum install -y pcre-devel bzip2-devel gcc gcc-c++ make

  • 然后编译
[root@ha haproxy-1.5.19]# make TARGET=linux2628 ARCH=x86_64	//指定内核版本和系统位数,2.6.18-371.e15,此时该参数用TARGET=linux26;kernel大于2.6.28的用TARGET=linux2628
[root@ha haproxy-1.5.19]# make install

  • 先创建一个放haproxy的配置文件的目录,然后修改内容
[root@ha haproxy-1.5.19]# mkdir /etc/haproxy
[root@ha haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/
[root@ha haproxy-1.5.19]# cd /etc/haproxy/
[root@ha haproxy]# vim haproxy.cfg 
global
        log /dev/log    local0 info		//local0为日志设备,默认存放到系统日志
        log /dev/log    local0 notice
        #log loghost    local0 info
        maxconn 4096			//最大连接数,可以用ulimit -n限制
#       chroot /usr/share/haproxy		//将这行注释
        uid 99					//用户UID
        gid 99					//用户GID
        daemon					//守护进程模式
        #debug
        #quiet

defaults
        log     global			//定义日志为global配置中的日志定义
        mode    http			//模式是http
        option  httplog			//采用http日志格式记录日志
        option  dontlognull		//不记录健康检查日志信息
        retries 3				//检查节点服务器失败次数,连续达到三次失败,则认为节点不可用
        redispatch				//当服务器负载很高时,自动结束当前队列处理比较久的连接
        maxconn 2000			//最大连接数
        contimeout      5000	//连接超时时间
        clitimeout      50000	//客户端超时时间
        srvtimeout      50000	//服务器超时时间
listen  webcluster 0.0.0.0:80
        option httpchk GET /test.html	//检查服务器的test.html文件
        balance roundrobin		//负载均衡调度算法使用轮询算法
        server  inst1 12.0.0.10:80  check inter 2000 fall 3		//定义在线节点
        server  inst2 12.0.0.13:80  check inter 2000  fall 3
//check inter 2000		//表示haproxy服务器和节点之间的一个心跳频率
//fall 3				//表示连续三次检测不到心跳频率则认为该节点失效

  • 然后启动Haproxy
[root@ha ~]# cp haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
[root@ha ~]# cd /etc/init.d/
[root@ha init.d]# ls
functions  haproxy  jexec  netconsole  network  README
[root@ha init.d]# chmod +x haproxy 
[root@ha init.d]# chkconfig --add /etc/init.d/haproxy 
[root@ha init.d]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
[root@ha haproxy]# service haproxy start 
Starting haproxy (via systemctl):                          [  确定  ]

部署nginx服务

详情请看nginx服务搭建

  • 然后在两台nginx服务器上创建一个主页为test.html的文件,然后启动服务
[root@nginx01 ~]# echo "this is jd" > /usr/local/nginx/html/test.html
[root@nginx02 ~]# echo "this is taobao" > /usr/local/nginx/html/test.html

  • 然后在浏览器中测试,以此达到负载均衡效果
    在这里插入图片描述
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章           查看所有文章
加:2021-07-28 08:14:35  更:2021-07-28 08:17:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 15:36:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码