小白到运维工程师自学之路 第三十九集 (HAproxy 负载均衡) 一、概述

这篇具有很好参考价值的文章主要介绍了小白到运维工程师自学之路 第三十九集 (HAproxy 负载均衡) 一、概述。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、概述

        HAProxy是一款高性能的负载均衡软件,可以将来自客户端的请求分发到多个服务器上,以提高系统的可用性和性能。HAProxy支持多种负载均衡算法,包括轮询、加权轮询、最少连接数等。同时,HAProxy还支持会话保持、健康检查、SSL终止等功能,可以满足不同场景下的负载均衡需求。HAProxy的配置文件简单易懂,可以通过命令行或者Web界面进行管理和监控。HAProxy广泛应用于Web服务器、数据库服务器、应用服务器等领域,是一款非常优秀的负载均衡软件。

二、工作原理

1. 客户端向 HAProxy 发送请求,请求可以是 HTTP、TCP 或者其他协议。

2. HAProxy 接收到请求后,根据预先定义的负载均衡算法(如轮询、加权轮询、最少连接数等)选择一个后端服务器。

3. HAProxy 将请求转发给选中的后端服务器。

4. 后端服务器处理请求并返回响应。

5. HAProxy 接收到响应后,将响应返回给客户端。

三、准备(CtneOS7系统)

小白到运维工程师自学之路 第三十九集 (HAproxy 负载均衡)
一、概述

1、四台服务器可以互相通联

2、四台服务器都关闭防火墙

systemctl stop firewalld.service     停止防火墙服务
systemctl disable firewalld.service  开机不自启动防火墙服务
sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/sysconfig/selinux  将selinux的配置文件改为不启动
reboot                               重启

四、部署haproxy+nginx+nfs(脚本部署)

目的:两台nginx服务器做web服务,haproxy服务器做调度负载均衡,为保证提供的内容一致性使用nfs做共享目录,两台nginx服务器使用相同的共享目录文件提供web服务

1、在192.168.1.20的服务器上安装haproxy

#!/bin/bash
#function:安装haproxy修改配置文件并添加两台web
#author:syh123 2021118
yum install haproxy -y  #yum安装haproxy
echo 请输入nginx服务器1ip  
read a                  #弹出输入框并将输入内容作为变量a
echo 请输入nginx服务器2ip
read b                  #弹出输入框并将输入内容作为变量a
sed -i "82s/127.0.0.1:5001/$a:80/"  /etc/haproxy/haproxy.cfg        #替换haproxy的配置文件82行为nginx1的ip
sed -i "83s/127.0.0.1:5002/$b:80/"  /etc/haproxy/haproxy.cfg        #替换haproxy的配置文件83行为nginx2的ip
sed -i '63s/5000/80/'  /etc/haproxy/haproxy.cfg                     #将haproxy的默认5000端口改为80端口
echo "listen admin_stats" >> /etc/haproxy/haproxy.cfg               #设置haproxy的web管理用户
echo "stats enable" >> /etc/haproxy/haproxy.cfg                     #开启haproxy程序web服务
echo "bind *:8080" >> /etc/haproxy/haproxy.cfg                      #haproxy管理页面端口为8080
echo "mode http" >> /etc/haproxy/haproxy.cfg                        #以下为haproxy系统配置
echo "option httplog" >> /etc/haproxy/haproxy.cfg
echo "log global" >> /etc/haproxy/haproxy.cfg
echo "maxconn 10" >> /etc/haproxy/haproxy.cfg
echo "stats refresh 30s" >> /etc/haproxy/haproxy.cfg
echo "stats uri /admin" >> /etc/haproxy/haproxy.cfg
echo "stats realm haproxy" >> /etc/haproxy/haproxy.cfg
echo "stats auth admin:admin" >> /etc/haproxy/haproxy.cfg
echo "stats hide-version" >> /etc/haproxy/haproxy.cfg
echo "stats admin if TRUE" >> /etc/haproxy/haproxy.cfg              #以上为haproxy系统配置
systemctl start haproxy.service                                     #开启haproxy程序
c=$(ip a | grep "inet "|grep ens33| awk '{print $2}'|awk -F/ '{print $1}')  #变量c等于本机ip
echo haproxy部署完成
echo 访问$c将自动轮询$a和$b的web页面
echo 访问$c:8080/admin为haproxy程序的管理页面
echo 管理页面登录账户为admin密码为admin

小白到运维工程师自学之路 第三十九集 (HAproxy 负载均衡)
一、概述

保存退出赋予脚本执行权限后执行该脚本

小白到运维工程师自学之路 第三十九集 (HAproxy 负载均衡)
一、概述

OK脚本执行完成

小白到运维工程师自学之路 第三十九集 (HAproxy 负载均衡)
一、概述

 2、在192.168.1.220上部署nfs(由于nginx服务需要用的nfs共享目录,这里我们先部署nfs在部署nginx

#!/bin/bash
#function:安装nfs 创建/app/file作为共享文件
#author:syh123 20211118
yum install nfs-utils rpcbind -y #yum安装nfs和rpc服务
touch /etc/exports               #创建nfc的配置文件
mkdir -p /app/file               #创建nfc共享文件目录
chown -R nfsnobody.nfsnobody /app/file/ #赋予共享目录nfs权限
echo "/app/file *(rw,sync)" >> /etc/exports #允许所有IP访问nfs共享目录并有可读写权限
exportfs –rv                               #载入配置
systemctl enable nfs                        #开机自启动nfs
systemctl enable rpcbind                    #开机自启动rps
systemctl start nfs                         #启动nfs程序
systemctl start rpcbind                     #启动rps程序
touch /app/file/index.html                  #在共享目录下创建网页文件
echo "<h1>test123</h1>" >> /app/file/index.html #在网页文件中写入要显示的数据
echo nfs服务部署完成

小白到运维工程师自学之路 第三十九集 (HAproxy 负载均衡)
一、概述

 保存退出赋予脚本执行权限后执行该脚本

小白到运维工程师自学之路 第三十九集 (HAproxy 负载均衡)
一、概述

OK安装完成

小白到运维工程师自学之路 第三十九集 (HAproxy 负载均衡)
一、概述 3、安装nginx1

#!/bin/bash
#function: Centos7一键安装nginux
#author:syh123 20211117
yum -y install  gcc gcc-c++ autoconf automake libtool make openssl openssl-devel pcre pcre-devel #安装nginx所需环境
cd  /usr/local/src/                                                                              #切换到安装目录
wget  http://nginx.org/download/nginx-1.8.1.tar.gz                                               #下载nginx到当前目录
tar -zxvf nginx-1.8.1.tar.gz                                                                     #解压nginx安装包
cd  nginx-1.8.1                                                                                  #进入解压后目录
./configure \--prefix=/usr/local/nginx \--with-http_ssl_module \--with-http_flv_module \--with-http_stub_status_module \--with-http_gzip_static_module \--with-pcre                                                     #编译文件
make && make install                                                                             #编译安装
cd  /usr/local/nginx                                                                             #进入nginx安装目录
sed -i '14s/nginx/test123/' /usr/local/nginx/html/index.html                                        #方便测试区分将网页中nginx改为test123
/usr/local/nginx/sbin/nginx                                                                      #启动nginx服务
echo nginx部署完成,请测试web页面                                                                #屏幕输出内容提醒用户
echo 接下来将部署nfs并映射html,请确认是否继续                                                    #屏幕输出内容提醒用户
echo 键入任意值将继续操作,如需中断请按Ctrl+c                                                    #屏幕输出内容提醒用户
read a                                                                                           #弹出框暂停执行,用户键入任意值继续执行,键入值作为变量a但后续并不调用这个变量
yum install nfs-utils rpcbind  -y                                                                #安装nfs和rpc服务
systemctl enable nfs                                                                             #开机自启动nfs服务
systemctl enable rpcbind                                                                         #开机自启动rps服务
systemctl start nfs                                                                              #启动nfs服务
systemctl start rpcbind                                                                          #启动rpc服务
echo nfs服务安装完成,接下来将进行挂载操作                                                       #屏幕输出内容提醒用户 
echo 键入任意值将继续操作,如需中断请按Ctrl+c                                                    #屏幕输出内容提醒用户
echo 请输入nfs服务器ip                                                                           #屏幕输出内容提醒用户
read b                                                                                           #将键入值作为变量b
mount -t nfs $b:/app/file /usr/local/nginx/html/                                                 #挂载nfs上的目录到nginx的html目录下

保存退出赋予脚本可执行权限后执行该脚本

小白到运维工程师自学之路 第三十九集 (HAproxy 负载均衡)
一、概述

安装完成

小白到运维工程师自学之路 第三十九集 (HAproxy 负载均衡)
一、概述

 查看挂载

可以看到已经挂载到网络共享文件夹中了

小白到运维工程师自学之路 第三十九集 (HAproxy 负载均衡)
一、概述

4、安装nginx2

#!/bin/bash
#function: Centos7一键安装nginux
#author:syh123 20211117
yum -y install  gcc gcc-c++ autoconf automake libtool make openssl openssl-devel pcre pcre-devel #安装nginx所需环境
cd  /usr/local/src/                                                                              #切换到安装目录
wget  http://nginx.org/download/nginx-1.8.1.tar.gz                                               #下载nginx到当前目录
tar -zxvf nginx-1.8.1.tar.gz                                                                     #解压nginx安装包
cd  nginx-1.8.1                                                                                  #进入解压后目录
./configure \--prefix=/usr/local/nginx \--with-http_ssl_module \--with-http_flv_module \--with-http_stub_status_module \--with-http_gzip_static_module \--with-pcre                                                     #编译文件
make && make install                                                                             #编译安装
cd  /usr/local/nginx                                                                             #进入nginx安装目录
sed -i '14s/nginx/syh123/' /usr/local/nginx/html/index.html                                        #方便测试区分将网页中nginx改为syh123
/usr/local/nginx/sbin/nginx                                                                      #启动nginx服务
echo nginx部署完成,请测试web页面                                                                #屏幕输出内容提醒用户
echo 接下来将部署nfs并映射html,请确认是否继续                                                    #屏幕输出内容提醒用户
echo 键入任意值将继续操作,如需中断请按Ctrl+c                                                    #屏幕输出内容提醒用户
read a                                                                                           #弹出框暂停执行,用户键入任意值继续执行,键入值作为变量a但后续并不调用这个变量
yum install nfs-utils rpcbind  -y                                                                #安装nfs和rpc服务
systemctl enable nfs                                                                             #开机自启动nfs服务
systemctl enable rpcbind                                                                         #开机自启动rps服务
systemctl start nfs                                                                              #启动nfs服务
systemctl start rpcbind                                                                          #启动rpc服务
echo nfs服务安装完成,接下来将进行挂载操作                                                       #屏幕输出内容提醒用户 
echo 键入任意值将继续操作,如需中断请按Ctrl+c                                                    #屏幕输出内容提醒用户
echo 请输入nfs服务器ip                                                                           #屏幕输出内容提醒用户
read b                                                                                           #将键入值作为变量b
mount -t nfs $b:/app/file /usr/local/nginx/html/                                                 #挂载nfs上的目录到nginx的html目录下

小白到运维工程师自学之路 第三十九集 (HAproxy 负载均衡)
一、概述

 保存退出赋予脚本可执行权限后执行该脚本

小白到运维工程师自学之路 第三十九集 (HAproxy 负载均衡)
一、概述

 ok安装完成

小白到运维工程师自学之路 第三十九集 (HAproxy 负载均衡)
一、概述

查看挂载

可以看到已经挂载到网络共享文件夹中了

小白到运维工程师自学之路 第三十九集 (HAproxy 负载均衡)
一、概述

 这样环境就部署完成了

测试

小白到运维工程师自学之路 第三十九集 (HAproxy 负载均衡)
一、概述

 把192.168.1.211上的nginx给关掉后使用192.168.1.210访问,可以发现访问的还是192.168.1.211的界面 OK测试成功

 小白到运维工程师自学之路 第三十九集 (HAproxy 负载均衡)
一、概述

 小白到运维工程师自学之路 第三十九集 (HAproxy 负载均衡)
一、概述文章来源地址https://www.toymoban.com/news/detail-494521.html

 以上就是HAproxy 负载均衡的基本配置

如有错误欢迎各位大佬批评指正,我们共同进步

到了这里,关于小白到运维工程师自学之路 第三十九集 (HAproxy 负载均衡) 一、概述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小白到运维工程师自学之路 第四十九集 (正则表达式之grep)

    1、正则表达式(Regular Expression,简称为RegExp或Regex)是一种用于描述、匹配和操作文本的字符串模式的表达式。它提供了一种强大而灵活的方式来进行字符串的搜索、替换、提取和验证操作。 2、正则表达式可以用于各种编程语言和应用程序中,包括文本编辑器、命令行工具

    2024年02月13日
    浏览(35)
  • 小白到运维工程师的自学之路 第五十四集 (ansible自动化运维工具)

    Ansible是一种开源的自动化工具,用于自动化任务的执行、配置管理和应用部署。它采用基于Python编写的简单、轻量级的语法,可以通过SSH协议远程管理和配置多台计算机。 Ansible的主要特点包括: 1、简单易用:设计简单,语法清晰,无需特殊培训即可上手使用。 2、基于模块

    2024年02月16日
    浏览(23)
  • 小白到运维工程师自学之路 第六十二集 (docker持久化与数据卷容器)

    一、概述 Docker持久化是指将容器中的数据持久保存在主机上,以便在容器重新启动或迁移时不丢失数据。由于Docker容器是临时和可变的,它们的文件系统默认是易失的,这意味着容器中的任何更改或创建的文件都只存在于此容器的生命周期内。但是,在许多场景中,我们希望

    2024年02月14日
    浏览(28)
  • 小白到运维工程师自学之路 第七十九集 (基于Jenkins自动打包并部署Tomcat环境)2

      拉到最后选择构建后操作 拉到最后点击保存   访问192.168.77.19:8080/probe 账户密码都是tomcat  

    2023年08月27日
    浏览(40)
  • 猿创征文|弃文从工,从小白到蚂蚁工程师,我的 Java 成长之路

    最近 CSDN 开展了猿创征文,希望博主写文章讲述自己在某个领域的技术成长历程。 之前也曾想找个机会写篇文章,记录下自己的成长历程。 因此,借着这个机会写下这篇文章。 在回顾自己的成长历程的同时,希望对一些同学的学习和工作也会有一些启发和帮助。 阅读本文,

    2024年02月16日
    浏览(34)
  • 后端工程师晋升之路

    入门 0.5 年 第 1 计:不要过于纠结方向选择问题。 开始入门的时候,我们可能都会纠结于选择前端还是后端,选择了后端还犹豫到底选 Java、Go 还是 Python。 其实,我觉得不用过于纠结。如果说你对偏前端的内容感兴趣,那就从前端入手;对数据库方面的内容感兴趣,那就从

    2024年02月10日
    浏览(32)
  • 零基础如何自学成为网络安全工程师

    一份网络攻防渗透测试的学习路线,不藏私了! 👉 【一帮助安全学习一】👈这里自取256G网络安全自学资料 1、学习编程语言(php+mysql+js+html) php+mysql可以帮助你快速的理解B/S架构是怎样运行的,只有理解了他的运行原理才能够真正的找到问题/漏洞所在。所以对于国内那些上来

    2024年02月16日
    浏览(39)
  • 【良品】运维实施工程师面试题

    答:netstat –anpt | grep 8089 答:kill -9 4728/ 答:find . -name \\\"en* \\\" 答:chmod +x filename.sh 答:tar -xf .gz -C /usr/local unzip .zip 答:rpm -q smile ; rpm -e smile 答:vi /etc/profile  添加内容 JAVA_HOME=/usr/local/java/jdk1.8.0_221 PATH=JAVAHOME/bin:PATH CLASSPATH=.:JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar export JAVA_HOME expo

    2024年02月09日
    浏览(31)
  • 初级运维工程师面试题

    1、apache有几种工作模式,分别简述两种工作模式及其优缺点? apache主要有两种工作模式:prefork(apache的默认安装模式)和worker(可以在编译的时候添加–with-mpm=worker选项) prefork的特点是:(预派生) 1.这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销 2.可以防

    2024年02月08日
    浏览(36)
  • 【运维工程师学习】Debian安装

    选择镜像文件 进入安装选择界面 graphical install 图形安装 Install 安装系统 advanced options 高级选项 Help 帮助 accessible dark contrast installer menu 无障碍暗色对比度安装程序菜单 (旨在为视力有障碍的用户提供更好的可访问性,提供了: 高对比度主题、大字体选项、屏幕阅读器支持) In

    2024年02月12日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包