Nginx超简洁知识:负载均衡-反向代理,动静分离,配置文件

首先介绍一下为什么需要nginx?

低并发场景下(也就是用户量特别少的情况下),我们只需要部署一台服务器就能满足用户数量少的需求。

但是如果用户量逐渐增多,只有一台服务器是不够的。于是我们需要部署多台服务器。
可能有几个项目启动在不同的服务器上,当用户需要访问,我们需要一台代理服务器来处理这些请求并转发到各个服务器上。

于是就有了nginx。来当这个代理服务器。

nginx的特点:

是一个高性能HTTP和反向代理web服务器,内存少,并发能力强。

nginx的几个最重要的作用:

一、反向代理:

反向代理的意思是:用代理服务器来接收网络请求,然后把请求转发给内网中的服务器,并将从内网服务器得到的结果返回给网络请求的客户端。

正向代理和反向代理的区别:
正向代理:发生在客户端,由用户主动。比如翻墙软件,用户主动去访问代理服务器,让代理服务器去找外网资源,然后把结果返回给客户端。
反向代理:发生在服务端,用户不知道代理服务器的存在


举个例子:

下图是前端请求地址,端口为81:

后端的地址如下,应该是http://localhost:8080/admin/employee/login

那么前端的请求的地址和后端接口地址不一致是如何请求成功的??

原理:nginx反向代理,将前端发送的请求由nginx转发到后端服务器。

 下图是nginx的配置文件,它监听的是81端口,服务器名是本地(http://localhost:81)。如果匹配到api字符串(http://localhost:81/api),就转发到proxy_pass对应的地址(http://localhost:8080/admin)。如果后面还有字符串就拼接到目标地址后面(http://localhost:8080/admin/employee/login)。

二、负载均衡:

负载均衡是为了尽可能的将网络请求平均分配到各个服务器上,以提高系统的整体性能和速度。

nginx的三种负载均衡策略:轮询,加权轮询,Ip_hash。

1、轮询(默认):轮流分配

2、加权轮询:weight代表权重,默认值为1,值越大代表被分配到的请求越多。

3、Ip_hash:每个请求按访问Ip的hash结果分配,这样每一个访客就固定访问

三、动静分离:

在软件开发中,有些请求是需要后台处理的,成为动态文件,相反,不需要后台处理的称为静态文件(比如css ,js,html等文件)。
动静分离的意思是将动态请求和静态请求分离开来,动态请求由tomcat处理,静态请求由nginx处理。这样就提高了资源解析速度!

nginx的配置文件详解就去看第一篇文章。

借鉴文章:

​​​​​​nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全-CSDN博客

Nginx快速入门-KuangStudy-文章

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【算法】归并排序概念及例题运用

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…

linux链接、目标文件全解析

内容目录 内容目录 链接 1. 静态链接2. 目标文件3. 可重定位目标文件4. 符号和符号表5. 符号解析 5.1 链接器如何解析多重定义的符号5.2 与静态库链接5.3 链接器如何使用静态库来解析引用 6. 重定位 6.1 重定位条目 - 6.2 重定位符号引用 6.2.1 重定位PC相对引用6.2.2 重定位…

计算机系统的层次

目录 计算机系统的层次ISA(指令集体系结构) 计算机系统的层次 计算机硬件是基础指令集体系结构:将硬件的功能封装从指令供软件使用操作系统:提供人机交互界面、提供服务功能的内核例程语言处理系统: 语言处理程序&…

群晖通过 Docker 安装 GitLab

Docker 配置容器步骤都是大同小异的,可以参考: 群晖通过 Docker 安装 Gitea-CSDN博客 1. 在 Docker 文件夹中创建 GitLab,并创建子文件夹 2. 设置权限 3. 打开 Docker 应用,并在注册表搜索 gitlab-ce 4. 选择 gitlab-ce 映像运行…

什么是不同类型的微服务测试?

大家好,我是锋哥。今天分享关于【什么是不同类型的微服务测试?】面试题?希望对大家有帮助; 什么是不同类型的微服务测试? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 微服务架构中的测试可以分为多种类…

多尺度建模:从理论到实践的深入探讨

#1024程序员节 | 征文# 引言 在现代科学与工程中,很多现象和过程在不同的空间和时间尺度上展现出复杂性。因此,能够有效地进行多尺度建模,已经成为了许多领域(如物理、生物、工程、环境科学等)研究的一个重要方向。本…

vue后台管理系统从0到1(5)

文章目录 vue后台管理系统从0到1(5)完善侧边栏修改bug渲染header导航栏 vue后台管理系统从0到1(5) 接上一期,我们需要完善我们的侧边狼 完善侧边栏 我们在 element 组件中可以看见,这一个侧边栏是符合我们…

【操作系统】06.进程控制

一、进程创建 1.1 认识fork函数 在linux中fork函数是非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。 进程调用fork,当控制转移到内核中的fork代码后,内核将 分配新的内存块和内核数据结构…

Aspose.PDF功能演示:使用 JavaScript 从 PDF 中提取文本

在数据提取、业务文档自动化和文本挖掘方面,使用 JavaScript 从PDF中提取文本非常有用。它允许开发人员自动执行从 PDF 收集信息的过程,从而显著提高处理大量文档的生产力和效率。在这篇博文中,我们将学习如何使用 JavaScript 从 PDF 中提取文…

人工智能的未来应用与发展前景

随着人工智能(AI)技术的快速进步,我们正亲历着它在各行各业中带来的巨大变革。无论是医疗、企业管理,还是日常生活,AI 技术都在改变着我们的工作和生活方式。那么,人工智能的应用前景究竟如何?它…

【消息队列】RabbitMQ实现消费者组机制

目录 1. RabbitMQ 的 发布订阅模式 2. GRPC 服务间的实体同步 2.1 生产者服务 2.2 消费者服务 3. 可靠性 3.1 生产者丢失消息 3.2 消费者丢失消息 3.3 RabbitMQ 中间件丢失消息 1. RabbitMQ 的 发布订阅模式 https://www.rabbitmq.com/tutorials/tutorial-three-go P 生…

winUI3 c++ 入门 2、 样式

目录 一、winUI3 基本概念及样式 1、边距 2、如何使用样式 1)、布局控件内定义样式 2)、APP.xmal定义全局样式 3)、单独的样式文件 3.1)、新增字典资源 xmal 3.2)、在里面设置样式 3.3)、引用样式 3、更多样式修改 1)、修改默认属性 2)、修改所有的默认颜色…

垃圾收集器与内存分配机制(一)

目录 一、为什么我们要去了解垃圾收集和内存分配 二、对象已死? 1. 引用计数算法 2. 可达性分析算法 3. 再谈引用 4. 生存还是死亡 5. 回收方法区 三、垃圾收集算法 1. 简介 2. 分代收集理论 2.1. 弱分代/强分代假说 2.2. 前面两代假说的缺陷 3. 标记-清…

智能去毛刺:2D视觉引导机器人如何重塑制造业未来

机器人技术已经深入到各个工业领域中,为制造业带来了前所未有的变革。其中,2D视觉引导机器人技术以其精准、高效的特点,在去毛刺工艺中发挥着越来越重要的作用。本文将为您介绍2D视觉引导机器人技术的基本原理及其在去毛刺工艺中的应用&#…

blender 理解 积木组合 动画制作 学习笔记

一、学习blender视频教程链接 案例2:积木组合_动画制作_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Bt4y1E7qn?vd_sourced0ea58f1127eed138a4ba5421c577eb1&p10&spm_id_from333.788.videopod.episodes 二、说明 之前已经学习了如何制作积木组…

20 Shell Script输入与输出

标出输入、标准输出、错误输出 一、程序的基本三个IO流 一)文件描述符 ​ 任何程序在Linux系统中都有3个基本的文件描述符 ​ 比如: ​ cd/proc/$$/fd ​ 进入当前shell程序对于内核在文件系统的映射目录中: [rootlocalhost ~]# cd /proc/$$/fd [rootlocalhos…

Ubuntu22.04环境搭建MQTT服务器

官网: https://mosquitto.org 1.引入库 sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa2.升级安装工具 sudo apt-get update 3.安装 sudo apt-get install mosquitto 4.安装客户端 sudo apt-get install mosquitto-clients5.添加修改配置文件 进…

微信小程序上传图片添加水印

微信小程序使用wx.chooseMedia拍摄或从手机相册中选择图片并添加水印&#xff0c; 代码如下&#xff1a; // WXML代码&#xff1a;<canvas canvas-id"watermarkCanvas" style"width: {{canvasWidth}}px; height: {{canvasHeight}}px;"></canvas&…

【Linux】冯诺依曼体系结构 OS的概念

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 主厨&#xff1a;邪王真眼 主厨的主页&#xff1a;Chef‘s blog 所属专栏&#xff1a;青果大战linux 总有光环在陨落&#xff0c;总有新星在闪烁 前言废话&#xff1a…

将java项目jar包打包成exe服务

1.结构展示 2.注意事项 前提: 环境准备:jdk8 和 .net支持 { 1.控制面板》程序和功能》启用和关闭windows功能》.net的勾选》2.jdk8自行百度安装环境3.其他项目必须的软件环境安装等&#xff08;数据库...&#xff09; }第一次准备: 1.将打包好的jar包放到premiumServices.exe…