当前位置: 首页 > news >正文

CentOS7.6 HAproxy-7层负载均衡集群——实施方案

目录

1、前期环境准备

1.准备4台主机

1. 设置主机名

2. 设置IP地址然后重启网卡

3. 关闭防火墙和selinux

4. 全部的服务器完成时间统一

二、配置haproxy(192.168.200.11)服务器

1. 安装haproxy

2. haproxy 配置中分成五部分内容

3. 配置HAproxy(192.168.200.11)

配置文件内容注释(详细内容还请自行查询)

4. 设置HTTP服务器IP地址映射主机名

三、配置HTTP服务器

1. 两台服务器安装httpd服务并启动(192.168.200.23web1  192.168.200.34web2)

2. 设置默认主页

四、测试结果

1. 客户端(192.168.200.10)安装elinks( 是一个基于文本的网页浏览器)

2. 使用elinks访问haproxy服务器


1、前期环境准备

1.准备4台主机
IP地址主机名角色内存
192.168.200.10clinent客户端2G
192.168.200.11serverHAproxy服务器2G
192.168.200.23web1web服务12G
192.168.200.34web2web服务22G
1. 设置主机名
hostnamectl set-hostname +主机名su
2. 设置IP地址然后重启网卡
vim /etc/sysconfig/network-scripts/ifcfg-ens33systemctl restart network
3. 关闭防火墙和selinux
systemctl stop firewalld
systemctl disable firewalldsetenforce 0vim /etc/selinux/config 注释加'#' SELINUX=enforcing添加      SELINUX=disabled
4. 全部的服务器完成时间统一
ntpdate cn.ntp.org.cn

二、配置HAproxy(192.168.200.11)服务器

1. 安装HAproxy
yum install haproxy -y

2. haproxy 配置中分成五部分内容

global: 设置全局配置参数,属于进程的配置,通常是和操作系统相关。

defaults:配置默认参数,这些参数可以被用到frontend,backend,Listen组件。

frontend:接收请求的前端虚拟节点,Frontend可以更加规则直接指定具体使用后端的。backend;

backend:后端服务集群的配置,是真实服务器,一个Backend对应一个或者多个实体服务器。

Listen :frontend和backend的组合体。

3. 配置HAproxy(192.168.200.11)

vim /etc/haproxy/haproxy.cfg删除文件里所有的内容
添加新的配置内容
globallog 127.0.0.1 local3 infomaxconn 4096uid nobody
#       uid 99gid nobody
#       gid 99daemonnbproc 1pidfile /run/haproxy.pid
defaultslog                globalmode       httpmaxconn 2048retries         3option  redispatchcontimeout      5000clitimeout          50000srvtimeout          50000
#timeout connect 5000
#timeout client 50000
#timeout server 50000option abortonclosestats uri /admin?statsstats realm Private landsstats auth admin:passwordstats hide-versionfrontend http-inbind 0.0.0.0:80mode httplog globaloption httplogoption httpcloseacl html url_reg  -i  \.html$use_backend html-server if  htmldefault_backend html-serverbackend html-servermode httpbalance roundrobinoption httpchk GET /index.htmlcookie SERVERID insert indirect nocacheserver html-A web1:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5server html-B web2:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5重启haproxy服务
systemctl start haproxy.service
配置文件内容注释(详细内容还请自行查询)

# 全局设置(global)
global
    # 日志配置,发送到本地的 syslog 服务
    log 127.0.0.1 local3 info
    # 最大连接数
    maxconn 4096
    # 运行用户和用户组
    uid nobody
    gid nobody
    # 守护进程模式运行
    daemon
    # 进程数
    nbproc 1
    # PID 文件位置
    pidfile /run/haproxy.pid

# 默认设置(defaults)
defaults
    # 使用全局日志配置
    log global
    # 工作模式为 HTTP
    mode http
    # 前端最大连接数
    maxconn 2048
    # 请求重试次数
    retries 3
    # 启用请求重新分发
    option redispatch
    # 连接超时时间(毫秒)
    contimeout 5000
    # 客户端超时时间(毫秒)
    clitimeout 50000
    # 服务器超时时间(毫秒)
    srvtimeout 50000
    # 断开连接选项
    option abortonclose

    # 统计页面配置
    stats uri /admin?stats
    stats realm Private lands
    stats auth admin:password
    stats hide-version

# 前端配置(frontend http-in)
frontend http-in
    # 监听地址和端口
    bind 0.0.0.0:80
    # 工作模式
    mode http
    # 日志配置
    log global
    # 启用 HTTP 日志
    option httplog
    # 启用 HTTP 连接关闭选项
    option httpclose
    # ACL 匹配 .html 结尾的请求
    acl html url_reg -i \.html$
    # 使用后端条件
    use_backend html-server if html
    # 默认后端
    default_backend html-server

# 后端配置(backend html-server)
backend html-server
    # 工作模式
    mode http
    # 负载均衡算法
    balance roundrobin
    # HTTP 健康检查
    option httpchk GET /index.html
    # Cookie 会话保持
    cookie SERVERID insert indirect nocache
    # 后端服务器定义:服务器ID,避免rr算法将客户机请求转发给其他服务器 ,对后端服务器的健康状况检查间隔为2000毫秒,连续2次健康检查成功,则认为是有效的,连续5次健康检查失败,则认为服务器宕机
    server html-A web1:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
    server html-B web2:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5

4. 设置HTTP服务器IP地址映射主机名
vim /etc/hosts原内容不动添加
192.168.200.23 web1
192.168.200.34 web2

三、配置web服务器

1. 两台服务器安装httpd服务并启动(192.168.200.23web1  192.168.200.34web2)
 yum install httpd -ysystemctl start httpd设置开机自启动
systemctl enable httpd
2. 设置默认主页
web1echo web1 > /var/www/html/index.htmlweb2echo web2 > /var/www/html/index.html

四、测试结果

1..查看HAproxy状态
http://192.168.200.11/admin?stats

2. 客户端(192.168.200.10)安装elinks( 是一个基于文本的网页浏览器)
yum install -y elinks
3. 使用elinks访问HAproxy服务器
elinks --dump http://192.168.200.11

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 户外上网黑科技|续航能力大比拼,飞猫、闪鱼、格行、品胜,哪个好
  • C++ CMake FFmpeg配置
  • 计算机毕业设计 家电销售展示平台 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
  • 【全国大学生电子设计竞赛】2021年I题
  • WPF WindowChrome、WindowStyle 自定义窗体样式
  • 【自动化测试必学语言】python:文件操作(json文件)
  • Ubuntu22.04系统中安装机器人操作系统ROS
  • 如何确保场外个股期权交易的安全?
  • 公共命名空间:上下文容器
  • 【云原生】高可用集群KEEPALIVED(理论篇)
  • 小程序使用this.animate实现3维动画切换
  • c语言 图片.bmp读写示例
  • 自动化数据采集:Lua爬虫与JSON解析的深度整合
  • 头狼择校小程序
  • PythonStudio 控件使用常用方式(二十一)TTrayIcon
  • [Vue CLI 3] 配置解析之 css.extract
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 《Java编程思想》读书笔记-对象导论
  • 【Amaple教程】5. 插件
  • 3.7、@ResponseBody 和 @RestController
  • css属性的继承、初识值、计算值、当前值、应用值
  • Druid 在有赞的实践
  • javascript 总结(常用工具类的封装)
  • Java到底能干嘛?
  • Linux各目录及每个目录的详细介绍
  • MySQL QA
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Object.assign方法不能实现深复制
  • React+TypeScript入门
  • Shell编程
  • spring security oauth2 password授权模式
  • Spring核心 Bean的高级装配
  • tweak 支持第三方库
  • Twitter赢在开放,三年创造奇迹
  • vuex 笔记整理
  • 读懂package.json -- 依赖管理
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 构造函数(constructor)与原型链(prototype)关系
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 人脸识别最新开发经验demo
  • 事件委托的小应用
  • 通过npm或yarn自动生成vue组件
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • gunicorn工作原理
  • 选择阿里云数据库HBase版十大理由
  • ​第20课 在Android Native开发中加入新的C++类
  • # 达梦数据库知识点
  • #1014 : Trie树
  • #define
  • #HarmonyOS:Web组件的使用
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (接口封装)
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (四) 虚拟摄像头vivi体验
  • (原創) 未来三学期想要修的课 (日記)