centos7系统:HAProxy软件部署

news2024/11/25 11:59:58

目录

目  的:

硬件需求:

​编辑 实验环境配置:

 haproxy的服务器配置:

 nfs+rps服务器部署:

 nginx服务器1部署:

 nginx服务器2部署:


目  的:

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

硬件需求:

centos7服务器

haproxy

192.168.1.107

centos7服务器

nginx

192.168.1.136

centos7服务器

nginx

192.168.1.145

centos7服务器

nfs+rps

192.168.1.108

 实验环境配置:

四台服务器均进行以下设置:

请关闭防火墙和selinux再执行后续操作

#关闭防火墙和selinux代码如下

systemctl stop firewalld.service    

#停止防火墙服务

systemctl disable firewalld.service  

#开机不自启动防火墙服务

sed -i 's/SELINUX=.*/SELINUX=disabled/'

/etc/sysconfig/selinux   

#将selinux的配置文件改为不启动

reboot   #重启服务器,修改selinux配置后重启生效

 haproxy的服务器配置:

在作为haproxy的服务器上导入以下shell执行haproxy安装

vim install-haproxy.sh

Chmod 755 install-haproxy.sh

#!/bin/bash

#function:安装haproxy修改配置文件并添加两台web

#author:999vip 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

 

执行结果如下,在弹出的提示语后分别输入两台nginx服务器ip地址(根据实际环境输入)

例:

nginx1:192.168.1.136

nginx2:192.168.1.145

浏览器访问测试:192.168.1.107:8080/admin

输入账户和密码

 

 nfs+rps服务器部署:

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

vim install-nfs-rps.sh

chomod 755 install-nfs-rps.sh

#!/bin/bash

#function:安装nfs 创建/app/file作为共享文件

#author:999vip 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>chenjiafengmeiyouxiaojii</h1>" >>

/app/file/index.html

#在网页文件中写入要显示的数据

echo nfs服务部署完成

 运行结果如下表示已完成nfs服务部署

 nginx服务器1部署:

vim install-ninx1.sh

chomod 755 install-ninx1.sh

 

#!/bin/bash

#function: Centos7一键安装nginux

#author:999vip 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/BDQN/'

/usr/local/nginx/html/index.html                                        

#方便测试区分将网页中nginx改为BDQN

/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目录下

注意:运行到下面这里时提示nginx部署完成,按任意键进行下一步时可暂停下,进行nginx2服务器部署

手动输入nfs服务器ip

例:192.168.1.108

 

 

 nginx服务器2部署

vim install-ninx2.sh

chomod 755 install-ninx2.sh

#!/bin/bash

#function: Centos7一键安装nginux

#author:999vip 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安装目录

/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目录下

 同样,在提示nginx部署完成时不按回车,进行haproxy测试,访问haproxy服务器的web页面会自动转到nginx1服务器的web页面,点击刷新后会跳转到nginx2服务器的web页面,多次刷新会顺序跳转

 再次登录haproxy服务器刷新查看数据变化

 

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

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

相关文章

(6.9-6.15)【大数据新闻速递】

【上海数交所将携手清华大学等举办首届数据资产入表研修班】 上海数据交易所获悉&#xff0c;数交所将联合清华大学五道口金融学院、上海市数商协会于6月28日至29日举办首届数据资产入表研修班。财政部印发《企业数据资源相关会计处理暂行规定&#xff08;征求意见稿&#xff…

前沿应用丨大规模无人机集群与“虚实结合”半实物仿真系统

一、应用背景 无人机集群在军事、安全、救援、航空监测、物流配送等领域具有广泛的应用前景。它可以提高任务执行的效率、灵活性和安全性&#xff0c;同时降低人力资源的需求和风险&#xff0c;无人机集群研究涉及多个学科领域&#xff0c;如机器人学、控制理论、通信技术和人工…

【算法与数据结构】383、LeetCode赎金信

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;这道题的思路和242、有效的字母异位词的思路一样   程序如下&#xff1a; class Solution { public…

好好存钱,是成年人最顶级的自律

作者| Mr.K 编辑| Emma 来源| 技术领导力(ID&#xff1a;jishulingdaoli) 王尔德说&#xff1a;“在我年轻的时候&#xff0c;曾以为金钱是世界上最重要的东西。现在我老了&#xff0c;才知道的确如此。” 路遥说&#xff1a;“钱是好东西&#xff0c;它能使人不再心慌&#…

指纹识别工具WhatWeb使用教程,图文教程(超详细)

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 WhatWeb 一、扫描网站指纹二、扫描强度三、扫描内网…

ZeroQuant-V2 LLM权重与激活量化

ref ZeroQuant-V2: Exploring Post-training Quantization in LLMs from Comprehensive Study to Low Rank Compensation 4bit量化为什么重要 The case for 4-bit precision: k-bit Inference Scaling Laws 这篇文章研究表明4bit通常是最优的量化方法&#xff1a;同样的量化…

快速选择合适的GNSS模拟器,看这几个重点

为了正确测试GNSS接收器或其他任何依赖GNSS信号的系统或设备&#xff0c;工程师需要模拟与真实卫星广播相同的RF信号&#xff0c;而使用GNSS模拟器是实现这一工作的最佳选择。 假设正在开发一种需要集成GNSS接收器的新产品&#xff0c;想要验证接收器设备在不同条件下是否运行…

企业为什么要关注库存?因为那都是“钱”!

库存是企业管理的核心&#xff0c;公司必须提供足够的商品来满足客户需求&#xff0c;但又不能冒着浪费金钱和资源的风险&#xff0c;一味的增加库存。 不同的企业在库存管理这个问题上就“八仙过海各显神通”了&#xff0c;常见的处理方法有&#xff1a; 1. 经验法&#xff1a…

求两数之和

必应壁纸供图 题目描述 两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不…

基于SpringBoot+Vue的学生毕业离校系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下…

Sui x KuCoin Labs夏季黑客松首批入围项目公布

经过一段时间的共同努力&#xff0c;我们已经完成了对Sui x KuCoin Labs夏季黑客松第一批入围项目的审核&#xff0c;并宣布以下团队已入围最终demo day&#xff1a; 首批入围名单 Desig Protocol Desig协议提供了一种与区块链无关&#xff08;无智能合约&#xff09;的多重…

聚观早报|奔驰接入ChatGPT聊天机器人;极兔速递提交上市申请书

今日要闻&#xff1a;奔驰接入ChatGPT聊天机器人&#xff1b;极兔速递向港交所提交上市申请书&#xff1b;微软股价创历史新高&#xff1b;美电动卡车Nikola宣布裁员23%&#xff1b;马斯克&#xff1a;人工智能具有颠覆性 奔驰接入ChatGPT聊天机器人 梅赛德斯 - 奔驰表示&…

Doris 扩缩容和副本均衡

扩缩容和副本均衡 ​ 对于集群节点发生变化&#xff08;扩缩容&#xff09;时&#xff0c;集群内部的tablet是如何以一定的策略完成数据的重分布&#xff0c;从而达到每个be能够分布尽可能数量相同的tablet。同时&#xff0c;集群内部某些tablet由于某些原因发生损坏时&#x…

快手web验证日志分析

文章目录 log参数session_ididentityproject_id 流程1-4请求参数sign日志formdata828586 log参数 为了确定日志中是否有参数和IP绑定&#xff0c;检查了session_id参数。 session_id session_id i (wn[e[t 0]] wn[e[t 1]] wn[e[t 2]] wn[e[t 3]] "-" wn…

rk3568 长按电源键关机修改

rk3568 电源键强制关机触发时间修改 Rockchip系列主控芯片配套PMIC支持长按电源键强制关闭PMU&#xff0c;也就是标题中的强制关机。rk3568使用I2C通信与PMIC(rk809/rk817)&#xff0c;power(电源)键则是与PMIC相连&#xff0c;PMIC监测按键状态控制RK3568的上下电&#xff0c;…

新增每日个股涨停原因及概念题材统计!股票量化分析工具QTYX-V2.6.6

功能概述 目前A股市场主旋律仍然是以行业及题材板块的热点轮动为主&#xff0c;因此从某种意义上来说&#xff0c;板块的强弱决定了选出个股的强弱。 我们的股票量化分析工具QTYX目前已经支持了统计行业板块内涨停板数量功能。‍ 为了进一步分析出市场上启动的热点概念题材。我…

vscode远程连接linux服务器

Linux服务器&#xff08;或虚拟机&#xff09;条件&#xff1a; 开启ssh服务 客户端&#xff1a; vscode 1.服务端 服务端需要开启ssh服务vscode才能连接&#xff0c;首先检验linux是否开启了ssh服务 systemctl status sshd servie sshd status 运行命令&#xff0c;如果可…

视频基础知识——编码时,帧率、码率、分辨率之间的联系

本文主要补充基础概念&#xff0c;在设置编码器的时候&#xff0c;参数设置不对&#xff0c;录制的屏幕就会出现花屏。所以梳理了基础知识&#xff0c;就知道哪里设置不对了。 如下是ffmpeg自带的sample&#xff0c;encode_video的例子&#xff0c;选取H264的编码器&#xff0c…

基于SpringBoot和协同过滤算法的体育商城系统的实现

最近帮小伙伴做了个基于SpringBoot和协同过滤算法的体育商城系统。 文章目录 一&#xff0c;SpingBoot介绍二&#xff0c;协同过滤算法介绍三&#xff0c;系统功能需求四&#xff0c;系统功能演示五&#xff0c;系统核心代码演示 一&#xff0c;SpingBoot介绍 现如今后台开源框…

企业寻求最大化投资回报率的24个社交媒体技巧

社交媒体营销不是银弹。它不会解决您所有的业务问题&#xff0c;也不会让您一夜成名。但是&#xff0c;如果您愿意投入时间和精力&#xff0c;社交媒体可以成为建立关系、建立信誉和发展业务的强大工具。 在这篇文章中&#xff0c;我们将分享24个社交媒体技巧&#xff0c;以帮…