“深入理解Nginx的负载均衡与动静分离“

目录

  • 引言
  • 一、Nginx简介
    • 1. Nginx的基本概念
    • 2. Nginx的特点
    • 3. Nginx的安装配置
  • 二、Nginx搭载负载均衡
  • 三、前端项目打包
  • 四、Nginx部署前后端分离项目,同时实现负载均衡和动静分离
  • 总结

在这里插入图片描述

引言

在现代互联网应用中,高性能和可扩展性是至关重要的。Nginx作为一款高性能的Web服务器和反向代理服务器,被广泛应用于各种规模的网站和应用程序中。本文将深入探讨Nginx的负载均衡和动静分离的原理与实践,帮助读者更好地理解和应用这些功能。

一、Nginx简介

Nginx是一款轻量级的高性能Web服务器和反向代理服务器,由俄罗斯的工程师Igor Sysoev开发。它采用事件驱动的异步非阻塞架构,能够处理大量并发连接,具有出色的性能和稳定性。本节将介绍Nginx的基本概念、特点和安装配置方法。

  • 负载均衡

在这里插入图片描述

  • 动静分离
    在这里插入图片描述

1. Nginx的基本概念

Nginx采用模块化的设计,核心模块负责处理HTTP请求和响应,而其他模块则提供了丰富的功能扩展,如负载均衡、动静分离、反向代理等。在理解Nginx的负载均衡和动静分离之前,我们需要了解一些基本概念,如虚拟主机、反向代理和上游服务器等。

2. Nginx的特点

Nginx具有以下几个显著的特点:

  • 高性能:采用异步非阻塞的事件驱动模型,能够处理大量并发连接,适用于高负载的场景。
  • 轻量级:占用系统资源少,启动速度快,适合部署在资源有限的环境中。
  • 可扩展性:支持模块化设计,可以根据需求选择性地加载和配置各种功能模块。
  • 稳定性:经过多年的生产环境验证,稳定性得到了广泛认可。

3. Nginx的安装配置

  1. 去到Nginx压缩包目录下, 我的是(javayh/software) 输入(yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel)回车 下载4个依赖先

  2. 解压Nginx压缩包 输入(tar -xvf nginx-1.13.7.tar.gz)回车 解压Nginx

  3. 然后 cd nginx-1.13.7 回车进入目标文件

  4. 编译,执行配置: 考虑到后续安装ssl证书 添加两个模块,输入(./configure --with-http_stub_status_module --with-http_ssl_module)回车

  5. 安装 输入(make && make install)回车

  6. 然后下一步如图所示在这里插入图片描述

  7. 然后cd sbin/ 回车进入sbin 然后输入./nginx回车启动

  8. 然后下载一个lsof 输入(yum install -y lsof)回车

  9. 输入(lsof -i:80)回车查看在这里插入图片描述

  10. 设置防火墙开放 80 端口
    输入(firewall-cmd --zone=public --add-port=80/tcp --permanent)回车开放
    输入( firewall-cmd --reload && firewall-cmd --list-port )回车刷新并展示在这里插入图片描述
    在这里插入图片描述
    能访问此时Nginx服务就启动成功了

二、Nginx搭载负载均衡

负载均衡是指将请求分发到多个服务器上,以达到提高系统性能和可用性的目的。Nginx作为一款高性能的反向代理服务器,具备强大的负载均衡功能。本节将介绍Nginx的负载均衡原理和常用的负载均衡算法,并结合实例演示如何配置和使用Nginx进行负载均衡。

继上面十步后实现负载均衡

  1. 首先防火墙需要再开端口
    输入(firewall-cmd --zone=public --add-port=8081/tcp --permanent)回车开放
    输入( firewall-cmd --reload && firewall-cmd --list-port )回车刷新并展示
    在这里插入图片描述
    此时就有三个端口了

  2. 这一步是我要删除我Tomcat之前所存在的项目
    在这里插入图片描述

  3. 然后回到software文件下面,输入(cp -r apache-tomcat-8.5.20/ apache-tomcat-8.5.20_8081/)回车就会多一个Tomcat服务器
    在这里插入图片描述

  4. 然后该新的Tomcat的端口配置,如下进入目录
    在这里插入图片描述
    回车进入后把所有的端口号都改一下,改为之后退出
    为了方便区别,我把(/javayh/software/apache-tomcat-8.5.20_8081/webapps/ROOT/)中的index界面改了,在远程连接上改的,也可以自己手动改

  5. 然后把两个Tomcat服务启动
    在这里插入图片描述
    现在先去访问看能不能成功
    在这里插入图片描述
    在这里插入图片描述
    这边可以看到两个都启动成功了

  6. 下一步要负载Tomcat,根据以下操作进入目标目录找到这个配置文件
    在这里插入图片描述

  7. 然后进入nginx.conf编辑配置,以下是我编辑的两个地方

   #服务器的集群upstream  tomcat_list {  #服务器集群名字server    127.0.0.1:8080  weight=1;   #服务器1   weight是权重的意思,权重越大,分配的概率越大。server    127.0.0.1:8081  weight=3; #服务器2   weight是权重的意思,权重越大,分配的概率越大} location / {#root   html;proxy_pass   http://tomcat_list;index  index.html index.htm;}
  1. 然后重启nginx进入该目录
    在这里插入图片描述
    然后输入(./nginx -s reload)回车重启
    此时负载均衡就搭配完成了

  2. 此时在两个Tomcat中进行部署项目
    在这里插入图片描述
    部署完成后把两个服务器重启
    在这里插入图片描述
    在这里插入图片描述
    有数据说明成功了

三、前端项目打包

  1. 打包前要确定项目能正常运行且没有问题
  2. 进行打包前要改一下项目的配置
  3. 进到前台项目的config中的index.js中修改build中的内容(修改的在最后一行)
 build: {// Template for index.htmlindex: path.resolve(__dirname, '../dist/index.html'),// PathsassetsRoot: path.resolve(__dirname, '../dist'),assetsSubDirectory: 'static',// assetsPublicPath: '/',修改前assetsPublicPath: './',//修改后
  1. 还要修改build文件夹中utils.js中的(添加一行 publicPath:‘…/…/’)
 if (options.extract) {return ExtractTextPlugin.extract({use: loaders,fallback: 'vue-style-loader',// 解决icon路径加载错误publicPath:'../../'})} else {return ['vue-style-loader'].concat(loaders)}}
  1. 改好之后就去本地文件夹下找到本项目的下一级cmd回车后在黑窗口输入npm run build

在这里插入图片描述
这样就打包好了
在这里插入图片描述
这个就是打包好的前台项目

四、Nginx部署前后端分离项目,同时实现负载均衡和动静分离

  1. 去到/usr/local/nginx/conf/的nginx.conf里进行编辑在这里插入图片描述

  2. 建一个mypro文件夹
    在这里插入图片描述

  3. 然后把前端所打包好的zip压缩包拖进去然后进入该文件夹目录

  4. 下载解压 unzip在这里插入图片描述

  5. 然后解压,输入 unzip dist.zip
    在这里插入图片描述
    此时解压完成,现在部署

  6. 这是我编辑的nginx.conf,后面那个是添加的( location ^~/api/)

location / {root   /usr/local/mypro/dist;#proxy_pass   http://tomcat_list;index  index.html index.htm;}location  ^~/api/ {proxy_pass http://tomcat_list/;}  
  1. 然后刷新,如下进入目标目录(输入 [ ./nginx -s reload] 回车)
    在这里插入图片描述
    访问发送请求的时候会有问题,所以
    在这里插入图片描述

  2. win+r 输入(C:\Windows\System32\drivers\etc)回车编辑hosts 添加(192.168.238.129 localhost)

成功
在这里插入图片描述

总结

本文深入探讨了Nginx的负载均衡和动静分离的原理与实践。通过对Nginx的基本概念、特点和安装配置的介绍,读者可以更好地理解Nginx的工作原理和使用方法。同时,通过对负载均衡和动静分离的详细讲解和实例演示,读者可以掌握如何使用Nginx提高系统的性能和可扩展性。希望本文对读者在实际应用中有所帮助。

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

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

相关文章

Spring Data Redis + RabbitMQ - 基于 string 实现缓存、计数功能(同步数据)

目录 一、Spring Data Redis 1.1、缓存功能 1.1.1、分析 1.1.2、案例实现 1.1.3、效果演示 1.2、计数功能(Redis RabbitMQ) 1.2.1、分析 1.2.2、案例实现 一、Spring Data Redis 1.1、缓存功能 1.1.1、分析 使用 redis 作为缓存, M…

c++中httplib使用

httplib文件链接:百度网盘 请输入提取码 提取码:kgnq json解析库:百度网盘 请输入提取码 提取码:oug0 一、获取token 打开postman, 在body这个参数中点击raw,输入用户名和密码 然后需要获取到域名和地址。 c++代码如下: #include "httplib.h" #in…

LangChain+LLM实战---Midjourney高级技巧的极简教程

原文:An advanced guide to writing prompts for Midjourney ( text-to-image) 作者:Lars Nielsen Midjourney生成的图像,文本Prompt:beautiful, fantasy city unreal engine 一句话介绍midjourney ? 对于那些还没有听说过Mid…

C# 文件 文件夹 解除占用

文件/文件夹 解除占用或直接删除。 编程语言:C# 这个就不用过多功能描述了。 注册windows 文件/文件夹 右键菜单。 文件夹解除占用:遍历文件夹所有文件,判断是否被占用,先解除文件占用,后解除文件夹占用&#xff0…

关于iOS:如何使用SwiftUI调整图片大小?

How to resize Image with SwiftUI? 我在Assets.xcassets中拥有很大的形象。 如何使用SwiftUI调整图像大小以缩小图像? 我试图设置框架,但不起作用: 1 2 Image(room.thumbnailImage) .frame(width: 32.0, height: 32.0) 在Image上应用…

Vue H5页面长按保存为图片

安装依赖&#xff1a;npm install html2canvas -d <template><div class"index"><div id"captureId" class"capture" v-show"firstFlag"><ul><li>1</li><li>2</li><li>3<…

python如何使用gspread读取google在线excel数据?

一、背景 公司使用google在线excel管理测试用例&#xff0c;为了方便把手工测试用到的测试数据用来做自动化用例测试数据&#xff0c;所以就想使用python读取在线excel数据&#xff0c;通过数据驱动方式&#xff0c;完成自动化回归测试&#xff0c;提升手动复制&#xff0c;粘…

2023年【山东省安全员C证】考试技巧及山东省安全员C证模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 山东省安全员C证考试技巧考前必练&#xff01;安全生产模拟考试一点通每个月更新山东省安全员C证模拟试题题目及答案&#xff01;多做几遍&#xff0c;其实通过山东省安全员C证模拟考试题很简单。 1、【多选题】《环境…

Lamport Clock算法

Lamport Clock 是一种表达逻辑时间的逻辑时钟&#xff08;logical clock&#xff09;&#xff0c;能够计算得到历史事件的时间偏序关系。 假设 P0进程是分布式集群中心节点中的监控者&#xff0c;用于统一管理分布式系统中事件的顺序。其他进程在发送消息之前和接受事件消息之后…

《视觉SLAM十四讲》-- 概述与预备知识

文章目录 01 概述与预备知识1.1 SLAM 是什么1.1.1 基本概念1.1.2 视觉 SLAM 框架1.1.3 SLAM 问题的数学表述 1.2 实践&#xff1a;编程基基础1.3 课后习题 01 概述与预备知识 1.1 SLAM 是什么 1.1.1 基本概念 &#xff08;1&#xff09;SLAM 是 Simultaneous Localization a…

go语言 | grpc原理介绍(三)

了解 gRPC 通信模式中的消息流 gRPC 支持四种通信模式&#xff0c;分别是简单 RPC、服务端流式 RPC、客户端流式 RPC 和双向流式 RPC。 简单 RPC 在gRPC中&#xff0c;一个简单的RPC调用遵循请求-响应模型&#xff0c;通常涉及以下几个关键步骤和组件&#xff1a; 请求头&a…

安全防御——二、ENSP防火墙实验学习

安全防御 一、防火墙接口以及模式配置1、untrust区域2、trust区域3、DMZ区域4、接口对演示 二、防火墙的策略1、定义与原理2、防火墙策略配置2.1 安全策略工作流程2.2 查询和创建会话 3、实验策略配置3.1 trust-to-untrust3.2 trust-to-dmz3.3 untrust-to-dmz 三、防火墙的区域…

“我“何去何从?2024年软件测试职业发展方向?运筹帷幄方能决胜千里之外...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 测试的职责无非就…

Postgresql在linux环境下以源码方式安装

linux环境下源码方式的安装 1.下载安装包&#xff08;源码安装方式&#xff09; 安装包下载 https://www.postgresql.org/ftp/source/ 2.安装postgresql ① 创建安装目录 mkdir /opt/pgsql12② 解压下载的安装包 cd /opt/pgsql12 tar -zxvf postgresql-12.16.tar.gz ③编…

14.1 Linux 并发与竞争

一、并发与竞争 并发&#xff1a;多个执行单元同时、并行执行。 竞争&#xff1a;并发的执行单元同时访问共享资源(硬件资源和软件上的全局变量等)易导致竞态。 二、原子操作 1. 原子操作简介 原子操作&#xff1a;不能再进一步分割的操作&#xff0c;一般用于变量或位操作。 …

网络运维Day02

文章目录 实验环境Linux系统简介Linux发行版RHEL与CentOS国产操作系统 安装CentOS7.9步骤一&#xff1a;虚拟硬件步骤二&#xff1a;为虚拟机安装操作系统为root设置密码首次初始化虚拟机 登录操作系统系统偏好设置 快照LINUX目录结构常见目录及其作用 LINUX磁盘表示方法LINUX中…

数二真题强化

高等数学 定积分 变上限积分求导 被积函数不能含有x&#xff0c;用换元法 线性代数

【Vue基础-实践】数据可视化大屏设计(林月明螺蛳粉文化公司单量数据大屏)

目录 一、知识整理 1、页面自适应 2、下载插件px to rem & rpx 3、关于padding与margin 4、下载echarts 5、下载axios 6、experss官网接口创建 7、创建路由 8、api接口创建 9、设置基准路径 10、跨域设置 11、图表设置 12、地图数据引用 13、设置地图效果 二、…

k8s:endpoint

在 Kubernetes 中&#xff0c;Endpoint 是一种 API 对象&#xff0c;它用于表示集群内某个 Service 的具体网络地址。换句话说&#xff0c;它连接到一组由 Service 选择的 Pod&#xff0c;从而使它们能够提供服务。每个 Endpoint 对象都与相应的 Service 对象具有相同的名称&am…

夜间灯光数据VIIRS Nighttime Day: Night Band Composites Version 1数据集

简介&#xff1a; 新一代对地观测卫星Suomi NPP,搭载的可见光红外成像辐射仪&#xff08;Visible Infrared Imaging Radiometer Suit,VIIRS&#xff09;&#xff0c;能够获取新的夜间灯光遥感影像&#xff08;Day/Night Band,DNB波段&#xff09;。VIIRS_VCMCFG夜光遥感数据的…