haproxy搭建nginx网站访问

文章目录

  • 一.案例概述
    • 2.1 HTTP请求
    • 2.2 负载均衡常用调度算法
      • ①RR(Round robin)
      • ②LC(least connections)
      • ③SH(source hashing)
    • 2.3 常见的web群集调度器
    • 3.实验环境
  • 二.实验步骤
    • 1.两台web网站步骤相同 安装web服务(nginx,apache)
      • ①安装web网站
      • ②在网页目录创建网站
    • 2.haproxy服务器配置
      • ①安装haproxy
      • ②修改配置文件
    • 3.测试web集群
      • 4.haproxy日志文件
      • ①修改haproxy配置文件 将原有日志配置修改
      • ②配置rsyslog服务
      • 查看日志文件是否生成查看客户端真实IP

一.案例概述

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

2.1 HTTP请求

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

2.2 负载均衡常用调度算法

调度算法有三种

①RR(Round robin)

RR算法是最简单最常用的一种算法,即轮询调度。
例如,有三个节点A、B、C,第一个用户访问会被指派到节点A,第二个用户访
问会被指派到节点B,第三个用户访问会被指派到节点C,第四个用户访问继续
指派到节点A,轮询分配访问请求实现负载均衡效果。此算法还有一种加权轮询,
即根据每个节点的权重轮询分配访问请求。

②LC(least connections)

LC算法即最小连接数算法,根据后端的节点
连接数大
小动态分配前端请求。例如,有三个节点A、B、C,各节点的连接数分别为A:
4、B:5、C:
6,此时如果有第一个用户连接请求,会被指派到A上,连接数变为A:5、B:
5、C:6;第二个用户请求会继续分配到A上,连接数变为A:6、B:5、C:6;
再有新的请求会分配给B,每次将新的请求指派给连接数最小的客户端。由于实
际情况下A、B、C的连接数会动态释放,很难会出现一样连接数的情况,因此
此算法相比较rr算法有很大改进,是目前用到比较多的一种算法。

③SH(source hashing)

SH即基于来源访问调度算法,此算法用于一些有
Session会话记录在服务器端的场景,可以基于来源的IP、Cookie等做群集调
度。例如,使用基于源IP的群集调度算法,有三个节点A、B、C,第一个用户
第一次访问被指派到了A,第二个用户第一次访问被指派到了B,当第一个用户
第二次访问时会被继续指派到A,第二个用户第二次访问时依旧会被指派到B,
只要负载均衡调度器不重启,第一个用户访问都会被指派到A,第二个用户访问
都会被指派到B,实现群集的调度。此调度算法好处是实现会话保持,但某些IP
访问量非常大时会引起负载不均衡,部分节点访问量超大,影响业务使用。

2.3 常见的web群集调度器

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

3.实验环境

在这里插入图片描述

haproxy是192.168.10.101
web1网站:192.168.10.102
web2网站:192.168.10.103

实验前关闭防火墙与selinux机制或者添加防火墙策略

二.实验步骤

1.两台web网站步骤相同 安装web服务(nginx,apache)

①安装web网站

在这里插入图片描述

②在网页目录创建网站

在这里插入图片描述

2.haproxy服务器配置

①安装haproxy

在这里插入图片描述

②修改配置文件

在这里插入图片描述

Haproxy配置项介绍:
Haproxy配置文件通常分为三个部分,即global、defaults和listen。
global为全局配置,defaults为默认配置,listen为应用组件配置。

在这里插入图片描述
这是全局项
log #配置日志文件记录,local2为日志设备,默认存放到系统日志
maxconn #最大连接数
user #程序用户
group #程序组

在这里插入图片描述

defaults配置项配置默认参数,一般会被应用组件继承,如果在应用组件
中没有特别声明,将按照默认配置参数设置。

在这里插入图片描述
listen配置项是配置应用模块参数
在这里插入图片描述
listen webcluster
//定义一个appli4-backup的应用
bind 0.0.0.0:80
//监听所有网卡的80端口
option httpchk GET /index. html
//通过GET/index.html检查服务器
建康状态
balanceroundrobin//负载均衡调度算法使用轮询算法
serverinst1 192.168.10.101:80checkinter2000fall3 //后端服务
器1,每2秒检查一次,3次失败后下线
server inst2 192.168.10.102:80 check inter 2000 fall 3

3.测试web集群

通过代理服务器调度到后端服务器
通过上面的步骤,已经搭建完成Haproxy的Web群集,接下来需要验证群
集是否工作正常。一个群集一般需要具备两个特性,第一个是高性能,第二个是
高可用

在这里插入图片描述
查询http日志文件查看是否是代理服务器访问网站
在这里插入图片描述

4.haproxy日志文件

Haproxy的日志默认输出到系统的syslog中,查看起来不是非常方便,为
了更好地管理Haproxy的日志,在生产环境中一般单独定义出来

①修改haproxy配置文件 将原有日志配置修改

在这里插入图片描述

②配置rsyslog服务

创建rsyslog的haproxy日志文件规则

在这里插入图片描述

查看日志文件是否生成查看客户端真实IP

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/87835.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/87835.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

进程间通信之socketpair

进程间通信之socketpair 源代码 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/wait.h>int main() {//父子通讯管道int m_pipe[2];//创建管道if(socketpa…

跟着AI学习C# Day29

&#x1f4c5; Day 29&#xff1a;C# 综合进阶知识回顾与职业发展建议 ✅ 学习目标&#xff1a; 回顾 C# 进阶学习路径&#xff1b;总结核心知识点&#xff0c;构建完整的技能体系&#xff1b;理解 C# 高级开发者应具备的核心能力&#xff1b;探索 C# 在不同技术领域的应用场…

茶席布置实训室:传承与创新的茶文化空间

一、茶席布置实训室的重要意义 茶席布置实训室是茶文化传承与创新的重要载体。在现代社会&#xff0c;茶文化的弘扬不仅是对传统的尊重&#xff0c;更是对生活品质和精神境界的追求。茶席布置实训室为人们提供了一个专业、系统地学习和实践茶文化的场所。它将理论知识与实际操…

jar is missing

在父POM中通过dependencyManagement统一管理版本&#xff0c;然后在子模块中省略版本号。

Linux 内核中 TCP 协议栈的输出实现:tcp_output.c 文件解析

在网络通信领域,TCP(传输控制协议)作为核心的传输层协议,确保了数据在网络中的可靠传输。Linux 内核中的 TCP 协议栈实现复杂而高效,其中 net/ipv4/tcp_output.c 文件是整个 TCP 协议栈的关键组成部分,负责处理数据包的发送、重传、连接管理等核心功能。本文将深入解析该…

MySQL分页原理与慢SQL优化实战

分页查询的本质 在Web应用中&#xff0c;分页是处理大量数据的常见需求。MySQL中的分页通常使用LIMIT offset, size语法实现&#xff0c;例如&#xff1a; SELECT * FROM users ORDER BY id LIMIT 10000, 20; 这条语句看似简单&#xff0c;但隐藏着性能陷阱。让我们深入理解…

Taro:跨端开发的终极解决方案

在当今多终端并存的互联网时代&#xff0c;开发者经常面临一个难题&#xff1a;如何高效地为不同平台&#xff08;如微信小程序、H5、React Native 等&#xff09;开发功能一致的应用&#xff1f;传统的开发方式需要针对每个平台单独编写代码&#xff0c;不仅效率低下&#xff…

STM32F103C8T6 学习笔记摘要(三)

第一节 跑马灯实验 1. 了解电路 结构图 说明一下&#xff1a; 那几个LED的引脚线和数码管的是一样的&#xff0c;如果不想让LED亮&#xff0c;就可以把J11的接线帽拔了这里的引脚是PA0-PA7 原理图 说明一下&#xff1a; 当J11接线帽盖上时&#xff0c;VCC3.3_LED就会有一个正…

GitHub Copilot 配置快捷键

GitHub Copilot 常用快捷键&#xff08;VS Code&#xff09; 功能快捷键&#xff08;Windows/Linux&#xff09;快捷键&#xff08;macOS&#xff09;接受建议&#xff08;选中的&#xff09;TabTab下一个建议Alt ]Option ]上一个建议Alt [Option [手动触发建议Ctrl Ente…

C++异常处理:深入理解与实践指南

C异常处理&#xff1a;深入理解与实践指南 在现代编程中&#xff0c;异常处理是确保程序健壮性和可靠性的重要机制。C作为一种功能强大的编程语言&#xff0c;提供了丰富的异常处理机制&#xff0c;帮助开发者应对程序运行时可能出现的各种意外情况。本文将深入探讨C异常处理的…

MySQL数据库的类型

文章目录 数值类型tinyint类型bit类型小数类型decimal 日期类型日期和时间类型 字符串类型charvarchar enum和set 数值类型 类型大小范围&#xff08;有符号&#xff09;范围&#xff08;无符号&#xff09;用途TINYINT1 Bytes(-128&#xff0c;127)(0&#xff0c;255)小整数值…

【Docker基础】Docker镜像管理:docker build详解

目录 1 Docker镜像基础概念 1.1 什么是Docker镜像 1.2 镜像的分层结构 2 docker build命令详解 2.1 docker build基本语法 2.2 构建上下文概念 3 Dockerfile编写实践示例 3.1 Dockerfile指令详解 3.1.1 FROM 3.1.2 RUN 3.1.3 COPY vs ADD 3.1.4 CMD vs ENTRYPOINT …

在 macOS 上部署 Akash Network 的完整 Shell 脚本解决方案

以下是在 macOS 上部署 Akash Network 的完整 Shell 脚本解决方案,包含详细注释和错误处理: #!/bin/bash # Akash Network macOS 部署脚本 v2.5 # 功能:在 macOS 系统上完整部署 Akash Network 节点和客户端工具 # 作者:DeepSeek 区块链团队 # 日期:2025-06-20 # 文档:h…

【分布式理论】读确认数与写确认数:分布式一致性的核心概念

文章目录 零、概述一、基本概念解释1、 什么是写确认数&#xff08;w&#xff09;&#xff1f;2、 什么是读确认数&#xff08;r&#xff09;&#xff1f;3、一致性级别的对应关系 二、工作流程详解1、 写操作的完整流程2、 读操作的完整流程 三、强一致性的数学原理1、 为什么…

滚珠导轨在医疗设备中有多重要?

在医疗设备领域&#xff0c;稳定性是保障手术安全、提升诊断精度的核心要素。无论是手术机器人精准的器械操作&#xff0c;还是CT扫描仪高速稳定的扫描运动&#xff0c;都离不开背后精密传动系统的支持。作为线性运动的核心部件&#xff0c;滚珠导轨凭借其独特的滚动摩擦原理与…

港科ISM选课攻略整理

毕业要求 课程和课程目录(ISM专业) "D:\HKUST-ISM\prepare\中英Program & Course Catalog.pdf" 课程和课程目录&#xff08;全部ISOM课程&#xff09; "D:\HKUST-ISM\prepare\全部ISOM Course Catalog.pdf" 两个可选专业方向 Financial Technolo…

rent8_wechat-最常用出租屋管理系统-微信小程序

rent8_wechat-最常用出租屋管理系统是rent8的微信小程序&#xff0c;需要和rent8配合使用。rent8_wechat基于Tdesign开发。 核心功能 房产管理&#xff1a;新增房产信息、修改房产信息、删除房产信息。房间管理&#xff1a;新增房间信息、修改房间信息、删除房间信息、入住管…

OpenCV CUDA模块设备层---- 绝对值函数abs()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 这是 OpenCV 的 cv::cudev 模块中用于 CUDA 设备端&#xff08;device&#xff09;的绝对值函数&#xff0c;专门处理 uchar1 类型&#xff08;即…

IEC61850 通信协议测试验证方法详解

一、MMS 协议测试方法 MMS&#xff08;制造报文规范&#xff09;是 IEC61850 中用于设备监控和控制的核心协议&#xff0c;测试需覆盖以下维度&#xff1a; &#xff08;一&#xff09;协议栈实现验证 连接管理测试 测试用例&#xff1a;建立和释放 MMS 连接 100 次&#xf…

关于 Kyber:抗量子密码算法 Kyber 详解

一、基本概念 后量子密码学&#xff08;PQC&#xff09; │ ├──> 是一个领域&#xff08;研究如何在“量子时代”保护数据安全&#xff09; │ └──> Kyber 是这个领域中设计出来的一个“抗量子密码算法”└──> Kyber 是用于加密密钥交换的算法&#xff08;叫…