Linux系统Nginx负载均衡环境部署及定时脚本

Nginx安装与配置、使用Nginx负载均衡及动静分离、后台服务部署、环境准备、系统拓扑图 nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。这里采用离线安装方式, 如果希望使用yum方式安装,可以参考。安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装。 阅读详情

1、大型项目衡量依据

1.1、PV

即整个项目所有页面一天之内被访问的总次数。项目PV值可以达到千万级别项目就算属大型项目

1.2、UV

即整个项目一天之内被访问的总的用户数(以客户端进行区分)。一般UV值可以达到10万以上该项目就可以算大型项目

1.3、独立IP

即整个项目一天之内被访问的总IP数量

2、apache性能测试

①使用集成包部署一个lamp环节

该步骤已经部署好 web目录地址在/home/wwwroot/default

 

②使用浏览器访问

③打开top命令(持续观察)

④使用apache的ab工具来进行测试

⑤具体查看结果

直接ab的参数在设置更大查看top命令中的结果

通过上述的结果发现 在请求量很大的情况下apache会消耗特别大的系统资源(cpu上升并且进程基本上都是httpd)。因此说明apache在访问量很高的情况下不能够支撑项目的运行

3、负载均衡概述

3.1、负载均衡介绍

为了解决web请求的压力,将请求安装一定的算法分发给其他的服务器来处理请求。负载均衡属于集群(多台服务器每一个都能够单独的完成一项任务。如果某一个异常也不会影响整个任务的运行)中的一种应用

3.2、负载均衡的原理图

1、域名解析是解析在负载均衡反向代理服务器上

2、当用户访问是本质是访问负载均衡反向代理服务器(代理即所有的请求都需要经意该服务器处理 代理服务器叫做反向代理。代理客户端叫做正向代理)

3、当负载均衡反向代理服务器收到请求之后将请求按照一定的算法分发给后端真实处理请求的服务器

4、当后端真实处理请求的服务器接受请求处理最终将结果返回给负载均衡反向代理服务器

5、最终由负载均衡反向代理服务器将结果响应给客户端

3.3、负载均衡分类

只是负载均衡可以划分类型的方式

3.3.1、地域

以真实处理请求的服务器的所在位置

1、全局负载

真实处理请求的服务器全部都处于外网中(所有服务器都可以通过IP地址直接进行访问。但是一般考虑安全问题真实处理请求的服务器只容许负载均衡反向代理服务器进行访问)。在全局负载的基础之上衍生一项技术叫做CDN加速(将用户的请求交给距离用户最近的服务器进行处理)

2、本地负载

真实处理请求的服务器全部都处于局域网中。对于本地负载安全性更高。

 

3.3.2、实现方式

1、硬件负载

依靠具体的硬件专门实现分发请求从而实现负载均衡。对于硬件负载功能稳定,并且能够提供一些额外的功能。

2、软件负载

在操作系统中安装某一个软件来实现将请求进行分发从而实现负载均衡。对于软件负载受限制与操作系统。并且稳定性与硬件相比较略差。目前使用最多的是通过使用Nginx来实现负载均衡

3、Nginx概述

3.1、Nginx介绍

Nginx(”engine x”)是俄罗斯人编写的一款高性能的HTTP和反向代理服务器。它能够支持高达50000个并发连接数的响应,而内存,cpu等系统资源消耗却非常低。

Nginx属于一款轻量级别的邮件服务器、http服务器及方向代理服务器

3.2、常见的web服务器

Apache:属于一款重量级的web服务器

Nginx:属于一款轻量级的web服务器

Tomcat:java容器

IIS:微软开发

Tengine:淘宝对Nginx进行二次开发

3.3、常见PHP生产环境

1、LAMP:Linux+apache+mysql+php

2、LNMP:Linux+Nginx+mysql+php

3、LNAMP:Linux+Nginx+apache+mysql+php

Nginx 实现请求的分发

3.4、apache与Nginx的区别

1、apache功能强大,运行稳定

2、Nginx功能少(php不支持),稳定性比apache略差

3、apache在并发情况下性能一般(完全依靠进程来处理任务来一个请求产生一个进程处理)

4、Nginx在高并发时性能良好(依旧采用的进程方式进行工作但是Nginx使用了异步非阻塞网络模式)

4、Nginx环境搭建

4.1、创建Linux虚拟机

创建步骤参考Linux第一天的环境搭建

4.2、安装Linux

没有截图的跟Linux第一天的环境搭建一模一样

①选择安装的类型

选择所有空间无需自己创建分区

②选择安装精简版

4.3、配置网络

①使用root账户登录系统并且查看IP

②进入网络配置文件

③修改配置文件/etc/sysconfig/network-script/ifcfg-eth0

④重启网络服务

⑤查看IP

配置完网络服务就可以使用xshell进行远程连接

4.4、设置本地yum源并且安装基础软件

4.4.1、配置本地yum源

①设置光盘已连接

打开虚拟机设置

设置光盘已连接

②创建光盘的挂载目录

③手动挂载光盘

④查看结果

⑤进入到yum配置目录

⑥禁用默认的网络yum源

⑦修改配置文件启用本地的yum源

打开配置文件

⑧测试yum安装使用

结果

⑨yum卸载软件

⑩软件查询

如果想要查询指定可以使用管道符配在配合grep筛选

4.4.2、使用yum安装基础软件

yum -y install make gcc gcc-c++ opensslopenssl-devel pcre-devel zlib-devel libxml2 libxml2-devel vim

4.5、Nginx安装

①使用FTP将Nginx的源码包上传到服务器上

②在命令行中进行解压

③进入解压目录执行configure

④安装

4.6、PHP安装

①使用FTP上传PHP源码包

②命令行进入home目录解压

③进入解压目录执行configure

④安装

4.7、配置Nginx与PHP交互

4.7.1、Nginx的安装目录解释

4.7.2、关于Nginx的启动等操作

①启动Nginx服务

②关闭Nginx服务

通过此方式关闭Nginx服务属于平滑关闭(平滑即不对现有的用户请求产生影响)

③关于不平滑关闭方式

可以使用pkill 直接将所有的Nginx相关的进程全部关闭也可以使用kill关闭指定的进程(kill作用是用于给进程进行传递信号)

④Nginx的重启

4.7.3、启动php

①启动php

②解决报错问题

③查看php是否启动

4.7.4、配置Nginx与PHP交互

①确认Nginx已经以及php启动

②直接访问Nginx

直接访问不能正常说明有问题(可以通过检查是否能够通信、服务是否启动、防火墙)

③关闭防火墙

查看结果

④创建php测试文件

访问测试时 发现代码直接下载

⑤修改Nginx的配置文件

先打开配置文件

修改内容

⑥重启Nginx查看效果

 

5、虚拟主机配置

5.1、Nginx配置文件详解

具体完整的配置项信息可以参考资料中的“nginx配置文件详解.txt”

5.2、配置虚拟主机

①打开配置文件

②修改server

③重启Nginx

④修改本机的host文件

⑤访问测试

5.3、修改虚拟主机的配置方式

由于目前增加虚拟主机每次都需要修改到Nginx的主配置文件(nginx.conf)。此方式容易导致修改错误导致Nginx的主配置文件出错

①修改Nginx的主配置文件

打开配置文件

②创建虚拟主机配置文件的存储目录

③在vhosts目录下创建虚拟主机配置

创建文件

输入内容

在vhosts目录下每一个后缀为.conf的文件就是一个虚拟主机配置 内容为server一段

④重启Nginx查看效果

结果

5.4、关于Nginx的缓存功能

关于Nginx的缓存设置直接针对对应的资源文件进行匹配即可

6、实现负载均衡

6.1、克隆第一台服务器

①先关闭Nginx2服务器(被克隆的服务器)

②开始克隆

选中服务器->右键->管理->克隆

③在弹出的引导界面直接下一步

④克隆当前状态

⑤选中克隆方式

⑥设置名称及存储位置

 

6.2、克隆第二台服务器

完整操作步骤参考6.1步骤

注意:被克隆的依旧为Nginx2服务器

6.3、调整克隆的第一台服务器nginx3

6.3.1、配置网络服务

①使用root账户登录

密码跟nginx2的密码一模一样

②查看Mac地址

③进入到网络配置目录

④修改配置文件

⑤重启网络服务查看IP地址

6.3.2、确保Nginx3的web服务可以正常访问

①关闭防火墙

②启动Nginx跟php

③测试是否可以访问

④修改测试的p.php文件

⑤再次测试

 

6.4、调整克隆的第二台服务器nginx4

6.4.1、配置网络服务

步骤与6.3.1一模一样

6.4.2、配置Nginx正常

步骤与6.3.2一致

6.5、调试Nginx2正常分发请求

①关闭防火墙

②修改Nginx的主配置文件

打开文件

③针对要负载的虚拟主机修改配置文件

先打开虚拟主机配置文件

修改内容

④启动Nginx

⑤查看结果

6.6、upstream语法

upstream 别名{

server 域名/IP地址 参数;

}

1、weight=number权重

2、bakup备份服务器

3、down,不可用状态

6.6.1、权重指定

①打开Nginx主配置文件(处理分发请求的Nginx2服务器)

②修改内容

③重启Nginx

④查看效果

 

6.6.2、backup

①打开配置文件(处理分发请求的Nginx2服务器)

②修改配置项

③重启Nginx

④查看效果

⑤挂起192.168.26.134服务器

此处挂起即代表服务器宕机

6.6.3、down

表示将服务器标注为宕机状态不参与负载均衡。在任何情况下都不参与

6.7、负载均衡算法

6.7.1、轮循

安装顺序逐个分配

6.7.2、权重

安装指定的数组比例采用轮询的方式来分配请求

6.7.3、最小连接

将请求分发给处理请求数量最少的服务器

6.7.4、ip_hash

根据请求的客户端的IP地址分配给固定的某一个服务器处理请求。从理论上ip_hash可以解决负载均衡下的session问题。但是没人使用

其他第三方算法(url_hash等)

 

7、扩展定时脚本

建议仔细查看怎么使用

7.1、定时脚本介绍

对于某个任务需要在固定的某一个时间点执行或者执行多次。需要使用定时脚本功能。对于脚本编写可以使用php完成任务然后配合Linux中的crontab实现定时。

7.2、案例一

使用Nginx2服务器实现

①进入Nginx的web根目录创建1.txt

 

②修改1.txt内容

③修改1.txt文件权限

④创建cron.php

⑤使用浏览器访问测试

查看文件

⑥在命令行下执行php

方式一

方式二

建议编写脚本时涉及到目录地址统一采用绝对地址

⑦ crontab使用

Crontab格式为:* * * * * command

第1列分钟1~59

第2列小时1~23(0表示子夜)

第3列日1~31

第4列月1~12

第5列星期0~6(0表示星期天)

第6列要运行的命令

例如要求每天12点12分执行某个任务

30 21 * * * /usr/local/apache/bin/apachectl restart

上面的例子表示每晚的21:30重启apache。

45 4 1,10,22 * * /usr/local/apache/bin/apachectl restart

上面的例子表示每月1、10、22日的4 : 45重启apache。

10 1 * * 6,0 /usr/local/apache/bin/apachectl restart

上面的例子表示每周六、周日的1 : 10重启apache。

0,30 18-23 * * * /usr/local/apache/bin/apachectl restart

上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

0 23 * * 6 /usr/local/apache/bin/apachectl restart

上面的例子表示每星期六的11 : 00 pm重启apache。

* */1 * * * /usr/local/apache/bin/apachectl restart

每一小时重启apache

* 23-7/1 * * * /usr/local/apache/bin/apachectl restart

晚上11点到早上7点之间,每隔一小时重启apache

0 11 4 * mon-wed /usr/local/apache/bin/apachectl restart

每月的4号与每周一到周三的11点重启apache

0 4 1 jan * /usr/local/apache/bin/apachectl restart

一月一号的4点重启apache

⑧使用crontab实现定时

先设置定时

查看日志

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

在Linux系统中无网络安装Nginx并配置负载均衡 通过本文的步骤,我们成功在无网络的环境中安装了Nginx,并配置了负载均衡功能。虽然无网络环境下的安装过程相对复杂,但通过手动编译和配置,我们依然能够搭建起一个高性能的Web服务器。希望本文能够帮助到需要在无网络环境下部署Nginx的开发者。如果你在安装过程中遇到任何问题,欢迎在评论区留言,我会尽力为你解答。 阅读详情

相关推荐

Linux下使用Nginx实现负载均衡

小编这些年深知大多数初中级工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。因此我收集整理了一份《2024年Java全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!如果你需要这些资料,⬅专栏获取[外链图片转存中…(img-kAYSAbQt-1719518107217)]

2401_85763595的博客 1072

进入大本营

刚加入学生大本营,希望能在里面学到好多知识,加油进步!

陆启超(网络管理) 16万+

基于linux下nginx服务负载均衡的配置

1.安装部署nginx [root@server4 ~]# cd /mnt [root@server4 mnt]# ls nginx-1.14.0.tar.gz [root@server4 mnt]# tar zxf nginx-1.14.0.tar.gz [root@server4 mnt]# ls nginx-1.14.0 nginx-1.14.0.tar.gz [root@server...

lin_made的博客 1万+

16.12.21小程序0.11.122100版本更新问题

官方更新了122100版本,一共有90几处改动。这里先不一一列举了。放在另外的文章里。这里主要指出本次更新后对我们项目的影响。

Beta007的博客 1356

Linux部署多个Spring Boot项目详解:从环境搭建到负载均衡

本文详细介绍了在Linux服务器上部署多个Spring Boot项目的完整流程。首先,通过系统初始化和JDK安装完成环境准备,接着规划项目结构和端口分配。随后,使用Systemd服务管理多个Spring Boot应用,并通过Nginx配置反向代理和负载均衡。此外,文章还提供了容器化部署方案,使用Docker和Docker Compose简化管理。最后,介绍了服务注册与发现(Eureka)和配置中心(Spring Cloud Config)的集成,以实现更高效的微服务架构。通过这些步骤,开发者可以在单台服务器

weixin_42593797的博客 1532

Linux系统之配置Nginx负载均衡

Linux系统之配置Nginx负载均衡

jks212454的博客 860

部署到Linux局部刷新出错,宝塔面板Linux正式版6.9.2推送更新 – 修正部分用户反馈安全入口有时会访问出错的问题...

宝塔面板反应速度足够快,最近大鸟也在官方反应了安全入口有时会访问出错的问题,也就是昨天反馈了这个问题,官方貌似也注意到了这事情。而且大鸟也给出了相应的解决办法,不过那个办法只能解决一时,只要取消安全入口才不会出现重复提示出错的问题。但是取消又会不太安全。好在官方第一时间推送了更新解决了这个问题,我没来看看后台的更新吧。宝塔面板Linux正式版6.9.2,是小幅更新,如图:这次的更新主要解决了3个问...

weixin_36305686的博客 336

【Scrapy】Scrapy教程4——命令行工具

Scrapy支持使用模块设置自己的项目命令。如何实现可参考的实践方法。然后在项目的settings文件中配置来添加自定义命令。以上就是对Scrapy命令行工具的说明,有不明确的地方,可参考官方文档欢迎大家在各大平台关注我,我会不定期发布技术相关文章和各种小工具,并且欢迎共同技术探讨!

jayhgq的博客 1249

uniapp 实现单选多选

template <template> <view> <view class="list-item" v-for="(item, index) in goodList" :key="index"> <view class="group"> <checkbox-group @change="changeitem(item)" checked class="checkbox"><checkbox :value="item.un

weCat_s的博客 3416

安卓逆向实战:用Batch Apktool 3.8.0快速汉化APK的完整流程

本文详细解析了如何使用Batch Apktool 3.8.0进行安卓APK汉化的完整流程,包括环境配置、反编译、资源解析、深度汉化、重构建与签名优化等关键步骤。通过这款集成化逆向工具,开发者可以高效完成APK汉化,提升工作效率。

s1t2u3的博客 1098

使用Anaconda和conda快速搭建YOLO开发环境

本文详细介绍了如何使用Anaconda和conda为YOLO目标检测项目快速搭建独立、纯净的开发环境。通过创建虚拟环境,有效解决了Python包版本冲突和CUDA兼容性问题,并指导安装GPU版PyTorch等核心依赖,最后通过验证脚本确保环境配置成功,为YOLO开发提供了稳定可靠的基础。

weixin_28829629的博客 161

gitbook安装与使用(含常用插件和book.json配置详解)

GitBook 安装教程 下面将介绍本地如何安装GitBook 环境要求 node版本要求:V4.0.0以上 通过npm安装 执行命令: npm install gitbook-cli -g 通过gitbook -V命令查看是否安装成功。 初始化 新建一个文件夹,例如新建 mygitbook ,然后在该目录下执行命令: gitbook init 会自动生成两个必要的文件 README.md 和...

G笔记 1万+

实战教程:用DETR+超分辨率搞定红外小目标检测(附完整代码)

本文提供了一套完整的红外小目标检测实战方案,通过融合EDSR超分辨率技术与改进型DETR深度学习算法,有效解决了红外图像中小目标检测的难题。文章详细介绍了从环境搭建、数据预处理、模型定制(如引入EMA注意力与S2特征层)到训练调优的全流程,并附有完整代码,旨在帮助开发者将前沿算法高效落地于安防、自动驾驶等实际场景。

weixin_29057163的博客 531

linux 部署Nginx

Nginx - 学相伴 分享人:秦疆(遇见狂神说) 公司产品出现瓶颈? 我们公司项目刚刚上线的时候,并发量小,用户使用的少,所以在低并发的情况下,一个jar包启动应用就够了,然后内部tomcat返回内容给用户。 但是慢慢的,使用我们平台的用户越来越多了,并发量慢慢增大了,这时候一台服务器满足不了我们的需求了。 于是我们横向扩展,又增加了服务器。这个时候几个项目启动在不同的服务器上,用户要访问,就需要增加一个代理服务器了,通过代理服务器来帮我们转发和处理请求。 我们希望这个代理服务器可以帮助我们接收

会飞的蜗牛 6914

vins-mono前端详解(2)——imu预积分

本篇文章详细讲解了vins-mono中imu预积分内容,包括复杂的公式推导。

weixin_44587828的博客 1192

保姆级教程:用Ansible 2.9自动化配置华为ENSP路由器(附Cloud连接避坑指南)

本文提供了一份详细的Ansible 2.9与华为ENSP路由器自动化配置教程,涵盖环境搭建、网络连通性配置、Playbook开发及典型问题排查。特别针对Cloud连接常见问题提供避坑指南,帮助运维工程师快速掌握网络自动化技能,提升工作效率。

weixin_42561476的博客 375

Linux环境下使用tomcat+nginx部署若依项目

分享部署过程,提供部署过程中出现问题的解决方案。

m0_73866527的博客 1763

【AI 编程工具】Codex配置部署指南

目录一、环境准备与基础安装1. 系统兼容性检查2. 前置依赖安装3. 安装方式选择二、API密钥配置与认证1. 获取API密钥2. 配置文件设置3. 临时配置方式三、沙盒环境配置与安全策略1. 沙盒模式选择2. 安全最佳实践四、高级功能配置1. 模型上下文协议(MCP)配置2. 模型版本切换3. 自定义网关配置五、常见问题排查1. 安装失败2. API调用失败3. 处理速度慢4. 配置文件不生效六、生产环境部署建议macOS/Linux:官方提供稳定支持,推荐使用原生环境Windows:官方标注为实验性支持

以实战经验介绍行业知识 2886

Linux---Nginx部署环境

Linux—Nginx部署环境 省事的话可以直接安装个宝塔面板,然后再宝塔种勾选安装mysql,nginx即可。 mysql mariadb是MySQL的分支 下载 wget http://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-5.6.44-1.el7.x86_64.rpm-bundle.tar tar -xf MySQL-5.6.44-2.sles12.x86_64.rpm-bundle.tar 安装 yum install -y *.rpm 报错: 解决:sete

李波的blog,一名喜欢编程和分享技术的研究僧~ 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【Linux】部署前后端分离项目---(Nginx自启,负载均衡)

【Linux】部署前后端分离项目---(Nginx自启,负载均衡)----超详细的图文并茂讲解,感兴趣可以看看,希望官方大大给我推流💕

m0_73192864的博客 3035

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【Linux】在Ubuntu下部署nginx——nginx的负载均衡

在Ubuntu下部署nginx——nginx的负载均衡

weixin_60387745的博客 2181

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【Linux】Linux+Nginx部署项目(负载均衡&动静分离)

Linux+Nginx部署项目,以及实现负载均衡&动静分离,一网打尽!!!

m0_74315688的博客 2202

Linux安装nginx、部署静态网页、实现负载均衡

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。 1.添加yum源 `rpm -Uvh http://nginx.org/packages/centos/7/no...

千月落 1万+

玩转Linux系统之搭建Nginx+Tomcat群集实现负载均衡

理论 提示:理论是基础,对搭建最优平台架构有帮助。 1、tomcat是免费的开放源代码的web应用服务器 属于轻量级应用服务器,是开发和调试jsp程序的首选。一般来说,具有处理html页面的功能。 2、性价比高 在中小型系统和并发访问用户不是很多的场合下被普遍使用 3、处理html的能力远不及apache或者nginx 所以,tomcat通常是作为一个servlet和jsp容器,单独运行在后端。 搭建Nginx+Tomcat群集 提示:可以有多种方式,为便于理解介绍比较简单的一种。 环境: 1.

Friendsofthewind的博客 1215

Nginx的安装和部署以及Nginx的反向代理与负载均衡

Nginx的安装和部署以及Nginx的反向代理与负载均衡

prcool的博客 1153
上一篇: Linux系统下Lame环境的搭建
下一篇: 第Linux系统memcache安装及缓存
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值