haproxy服务器对nginx服务器web服务调度负载均衡、用nfs做共享目录(脚本部署)

news2024/11/17 6:35:46

目录

一、准备

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

三、由于nginx服务需要用的nfs共享目录,先部署nfs

四、nginx服务器1部署

五、nginx服务器2部署同上

六、测试


一、准备

四台服务器

系统IP搭建服务器
centos7192.168.1.12haproxy
centos7192.168.1.132nfs(rpcbind)
centos7192.168.1.133nginx
centos7192.168.1.134nginx

四台服务器关闭防火墙和selinux

[root@localhost ~] systemctl stop firewalld.service       #关闭防火墙
[root@localhost ~] systemctl disable firewalld.service   #防火墙开机不自启
[root@localhost ~] sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/sysconfig/selinux 
                    #将selinux的配置文件改为不启动
[root@localhost ~] reboot  #重启服务器,修改selinux配置后重启生效

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

[root@localhost ~] vim haproxy_install.sh

#!/bin/bash
#安装haproxy修改配置文件并添加两台web
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地址(根据实际环境输入)

[root@localhost ~] chmod 755 haproxy_install.sh  #添加执行权限
[root@localhost ~] ./haproxy_install.sh    #执行脚本

完毕!
请输入nginx服务器1ip
192.168.1.133
请输入nginx服务器2ip
192.168.1.134
haproxy部署完成
访问192.168.1.12将自动轮询192.168.1.133和192.168.1.134的web页面
访问192.168.1.12:8080/admin为haproxy程序的管理页面
管理页面登录账户为admin密码为admin
[root@localhost ~] systemctl status haproxy.service  #查看状态
Active: active (running) since 五 2023-06-16 14:22:43 CST; 15min ago  #运行中

三、由于nginx服务需要用的nfs共享目录,先部署nfs

[root@localhost ~] vim nfs_install.sh
#!/bin/bash
#function:安装nfs 创建/app/file作为共享文件
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>skl6666666</h1>" >> /app/file/index.html #在网页文件中写入要显示的数据
echo nfs服务部署完成

[root@localhost ~] chmod 755 nfs_install.sh 
[root@localhost ~] ./nfs_install.sh 

Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
nfs服务部署完成
[root@localhost ~] systemctl status nfs  

四、nginx服务器1部署

[root@localhost ~] vim nginx_install.sh
# Centos7一键安装nginux
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目录下
[root@localhost ~] chomd 755 nginx_install.sh
[root@localhost ~] ./nginx_install.sh  
请输入nfs服务器ip
192.168.1.132
[root@localhost ~] df -h

192.168.1.132:/app/file   17G  1.7G   16G   10% /usr/local/nginx/html #成功挂载

                                                                                                                                 

五、nginx服务器2部署同上

六、测试

关闭nginx 1 

 启动中

 关闭掉

 发现还能登录192.168.1.133

 关闭nginx 2

测试完成


 

 

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

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

相关文章

深度学习经典trick汇总

深度学习经典trick汇总 trick这个词或许有投机取巧的意味&#xff0c;但深度学习论文中出现的很多这个trick确实对模型更方面性能有所提高&#xff0c;而且它们中的很多还具有普适性&#xff0c;那么这种“trick“或许应该被叫做“技术”。 1. 权重衰减 θ t 1 ( 1 − ω α…

DHCP服务器

文章目录 DHCP服务器DHCP的工作原理DHCP服务器的用途DHCP协议的工作方式DHCP服务器给予客户端固定或动态的IP参数关于租约所造成的问题与租约期限多台DHCP服务器在同一物理网段的情况 何时需要架设DHCP服务器使用DHCP的时机不建议使用DHCP主机的时机 DHCP服务器端的配置所需软件…

Quantum Utility!IBM开辟“量子计算的实用时代”

光子盒研究院 今天&#xff0c;IBM&#xff08;纽约证券交易所股票代码&#xff1a;IBM&#xff09;宣布了一项新的突破&#xff0c;并发表在科学杂志《自然》的封面上。 ——团队首次证明了量子计算机可以在100多个量子比特的规模上产生精确的结果&#xff1b;并且至少在一种计…

Redis入门 - 基础通用指令

原文首更地址&#xff0c;阅读效果更佳&#xff01; Redis入门 - 基础通用指令 | CoderMast编程桅杆https://www.codermast.com/database/redis/base-commind.html 在正式介绍Redis数据结构及其操作指令之前&#xff0c;我们需要先掌握一些最基础的通用指令。 这些都是Redis…

鸟类识别Python,基于TensorFlow卷积神经网络【实战项目】

一、介绍 鸟类识别系统&#xff0c;使用Python作为主要开发语言&#xff0c;基于深度学习TensorFlow框架&#xff0c;搭建卷积神经网络算法。并通过对数据集进行训练&#xff0c;最后得到一个识别精度较高的模型。并基于Django框架&#xff0c;开发网页端操作平台&#xff0c;…

chatgpt赋能python:Python自动获取图片数据的方法

Python自动获取图片数据的方法 随着信息时代的到来&#xff0c;图像数据已经越来越重要。我们如何从互联网上获取大量的图片数据呢&#xff1f;Python提供了简单而直接的方法。本文将介绍如何使用Python自动获取图片数据&#xff0c;充分利用Python的编程能力&#xff0c;开展…

异常的相关知识

&#x1f4e2;博客主页&#xff1a;盾山狂热粉的博客_CSDN博客-C、C语言,机器视觉领域博主&#x1f4e2;努力努力再努力嗷~~~✨ &#x1f4a1;大纲 ⭕总结了python中所有可能的异常情况&#xff0c;有异常不一定是坏事&#xff0c;有提醒作用 一、常见异常 &#x1f4a1;可以…

Midjourney命令列表Command List介绍

您可以通过键入命令与Discord上的Midjourney Bot进行交互。命令可以用来生成图像、更改默认设置、监看用户信息以及执行其他有用的任务。 Midjourney 命令可以在任何Bot Channel中使用&#xff0c;在允许 Midjourney Bot 运行的私有 Discord 服务器上使用&#xff0c;或者在与…

Java项目开发基本数据类型与封装数据类型的选择

问题 Java项目开发基本数据类型与封装数据类型的选择 详细问题 关于基本数据类型与封装数据类型的区别&#xff0c;作为面试经典题目已被熟知&#xff0c;但是&#xff0c;项目开发时&#xff0c;对于一个变量&#xff0c;是选择基本数据类型&#xff0c;还是封装数据类型&a…

【SpringBoot】SpringBoot案例 | Web后端开发

黑马2023JavaWeb的B站视频&#xff0c;还可以&#xff0c;学的大部分都是有用的东西。没有一上来还JDBC。 新建项目、更改application.properties配置&#xff1a; spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver spring.datasource.urljdbc:mysql://localhost:…

定时任务执行时间设置详解

目录 前提实践举例定时任务执行时间设置详解定时器包含的子表达式和对应子表达式允许的值子表达式中特殊字符含义的解释和相应示例 前提 一般在处理业务过程中&#xff0c;都需要在特定的时间点执行特定的任务&#xff0c;尤其是业务复杂且执行时间很长&#xff0c;业务之间关…

java中的时间

一、JDK7的类 &#xff08;1&#xff09;Date 时间 &#xff08;2&#xff09;SimpleDateFormat 格式化时间 &#xff08;3&#xff09;Calendar 日历 格林尼治时间&#xff08;Greenwich Mean Time&#xff09;&#xff0c;简称GMT。 目前的世界标准时间&#xff08;UTC)以替换…

C++的友元函数、友元类、内部类

目录 1.友元函数 1.定义 2.注意 2.友元类 1.定义 3.内部类&#xff08;Java喜欢用&#xff0c;C不怎么用&#xff09; 1.定义 特性&#xff1a; 1.友元函数 1.定义 1.友元函数可访问类的私有和保护成员&#xff0c;但不是类的成员函数。 2.友元函数不能const修饰 3.…

Rust语言从入门到入坑——(4)Rust语法(上)

文章目录 0 引入1、基础语法1.1、变量1.2、常量1.3、重影 2、数据类型2.1、整形2.2、浮点型2.3、其他2.注释与打印2.1 注释2.2、打印 3、总结 0 引入 在这里我们需要介绍Rust语法&#xff0c;一共分三部分&#xff0c;第一部分是基础语言&#xff0c;和C语言类比&#xff0c;如…

从零构建后端项目-创建SpringBoot项目配置MyBatis

目录 主体介绍 创建SpringBoot项目主要步骤 配置MyBatis 整合高级功能 创建SpringBoot项目 配置Tomcat 配置MySQL数据源 配置Redis数据源 配置MongoDB数据源 运行项目&#xff0c;检测配置 配置MyBatis 创建IDEA数据库连接 生成MyBatis各种文件 配置MyBatis 配…

总结902

目标规划&#xff1a; 月目标&#xff1a;6月&#xff08;线性代数强化9讲&#xff0c;考研核心词过三遍&#xff09; 周目标&#xff1a;线性代数强化5讲&#xff0c;英语背3篇文章并回诵&#xff0c;检测 每日规划 今日已做 1.背诵前21篇短文&#xff0c;默写了10篇文章。…

智能视频无损放大-Topaz Video AI

今天给各位小伙伴们测试了一款可以使视频智能无损放大的软件——Topaz Video AI。 小编在很早之前也有了解过Topaz系列的软件&#xff0c;都是通过人工智能处理的&#xff0c;对小白新手们很适用&#xff0c;由于使用人工智能方面的软件或程序对硬件要求都比较高&#xff0c;因…

离散数学题目收集整理练习(期末过关进度70%)

✨博主&#xff1a;命运之光 &#x1f984;专栏&#xff1a;离散数学考前复习&#xff08;知识点题&#xff09; &#x1f353;专栏&#xff1a;概率论期末速成&#xff08;一套卷&#xff09; &#x1f433;专栏&#xff1a;数字电路考前复习 &#x1f31f;博主的其他文章&…

Linux运维监控学习笔记2

Zabbix监控本机&#xff1a; 配置->主机->将Zabbix Server的状态开启。 然后我们还需要在这台机器上安装agent。agent安装在被监控端&#xff0c;收集数据&#xff0c;与监控服务器交互。 # 列出系统上面所有软件名称 rpm -qa |grep zabbix-agent zabbix-agent-3.4.15-…

hello算法笔记之栈与队列

一、栈 遵循先入后出&#xff08;First In, Last Out&#xff09;原则的线性数据结构。 只能在栈顶添加或删除元素 链表实现形式&#xff1a; ①栈以链表形式实现&#xff1a; ②以数组形式实现 二、队列 遵循先入先出&#xff08;First In, First Out&#xff09;规则的线…