技术栈1:nginx基础入门

1.nginx概述

Nginx (engine x)是一个高性能的HTTP和反向代理Web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日

Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、网易、腾讯、淘宝等

Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率

2.正向代理与反向代理

正向代理(Forward Proxy)是代理服务器的一种,用于代理客户端(如电脑、手机)向外部服务器发出的请求。其主要作用是帮助客户端访问外部资源,隐藏客户端的IP地址,并可用于加速、过滤内容或实现网络访问控制。正向代理的工作原理如下:

  1. 客户端发送请求到代理服务器
  2. 代理服务器接收到请求后,代表客户端向目标服务器发出请求
  3. 目标服务器将响应返回给代理服务器
  4. 代理服务器将响应内容返回给客户端

在这种模式下,目标服务器通常不知道客户端的真实IP地址,它只知道来自代理服务器的请求。因此,正向代理常用于访问受限的资源(例如访问外网)、提高安全性、或加速网络访问。典型的应用场景包括:

  • 科学上网:正向代理服务器帮助用户访问受地理位置限制的内容
  • 缓存:将一些常用资源缓存到代理服务器,提升访问速度
  • 匿名访问:代理服务器隐藏客户端真实IP,提高隐私性

反向代理(Reverse Proxy)是一种代理服务器,位于客户端和服务器之间,用于代理客户端对服务器的请求。与正向代理不同,反向代理代理的是服务器端而不是客户端。其主要功能是隐藏服务器的真实地址,提升系统的性能、安全性和可扩展性。反向代理的工作原理如下:

  1. 客户端向反向代理服务器发送请求
  2. 反向代理服务器接收到请求后,判断或选择适当的后端服务器,将请求转发过去
  3. 后端服务器处理请求,并将响应发送回反向代理服务器
  4. 反向代理服务器将响应内容返回给客户端

在这种模式下,客户端并不知道具体是哪台服务器提供了服务,而只看到反向代理服务器的地址。反向代理服务器是代表后端服务器来应答客户端请求的。反向代理的主要应用场景包括:

  • 负载均衡:反向代理将客户端请求分配到多台服务器上,均衡各服务器的负载,提升系统的性能和处理能力
  • 安全防护:通过隐藏后端服务器的真实IP地址,反向代理可以保护内部网络免受直接的攻击
  • 缓存加速:反向代理缓存后端服务器的响应,减少重复请求带来的负担,提高访问速度
  • SSL终结:反向代理处理客户端的SSL加密请求,降低后端服务器的计算负担

3.负载均衡

普通的请求/响应模式是比较常见且成本较低的方式,但是当并发请求很多的时候,容易导致服务器过载,可以通过负载均衡技术解决,负载均衡(Load Balancing)通过合理地分配网络流量到多台服务器上,以避免某一台服务器过载,从而提高系统的响应速度、稳定性和处理能力。负载均衡的实现方式包括:

  • DNS负载均衡:通过将域名解析为多个服务器的IP地址,客户端随机选择一个IP来访问。
  • 硬件负载均衡:使用专门的负载均衡设备(如F5等),具有高性能和复杂的负载分配策略。
  • 软件负载均衡:使用软件(如Nginx、HAProxy等)在服务器集群中分配流量,灵活、可配置。

常见的负载均衡算法有:

  • 轮询:按顺序将请求依次分配给每台服务器。
  • 加权轮询:根据服务器的性能设置权重,权重越高的服务器分配到的请求越多。
  • 最少连接数:将请求分配给当前连接数最少的服务器,适合长时间连接的应用。
  • 源IP哈希:根据客户端IP地址进行哈希计算,将请求始终分配给相同的服务器。

4.动静分离

动静分离技术是一种用于优化网站性能的架构策略,将动态资源和静态资源分开处理,以提高访问效率、减轻服务器负载。动态资源通常是需要服务器实时处理、生成的内容(如用户数据查询、购物车等),而静态资源是无需修改、可以直接读取的文件(如图片、CSS、JavaScript文件等)。动静分离的主要原理和实现方式如下:

  1. 静态资源的独立存储与分发
    将静态资源(如图片、CSS、JavaScript)存储在独立的服务器上,或者直接放置到内容分发网络(CDN)中,由CDN缓存和分发。这样,用户在访问静态资源时,不需要经过主服务器,从而减少主服务器的压力,提高资源的访问速度。

  2. 动态资源由主服务器处理
    动态资源通常需要服务器实时处理,比如数据库查询、用户身份验证、个性化推荐等。这些请求仍然交给主服务器,由服务器进行计算和返回。

  3. 前端通过URL路由区分动静资源
    在前端开发中,可以通过URL路径、文件后缀等方式区分静态和动态资源。例如,动态请求路径指向主服务器,而静态资源路径指向CDN或独立的静态资源服务器。

动静分离的优势:

  1. 提升性能与访问速度
    静态资源通过CDN等加速网络分发,可以减少访问延迟,提升用户的加载速度。同时,减少主服务器的负载,使其能够更快地处理动态请求。

  2. 降低服务器负载
    静态资源由独立的服务器或CDN处理,主服务器只需处理动态请求,从而减轻了主服务器的压力,提高了系统的稳定性。

  3. 降低带宽和成本
    静态资源大部分可以缓存,一旦存储在CDN等网络中,即可减少主服务器的流量需求,有效降低带宽和运营成本。

  4. 增强扩展性
    动静资源分离后,可以分别对静态和动态部分进行扩展。例如,静态资源可以单独增加CDN节点,而动态服务器可以根据负载增加服务节点,使得系统更具弹性。

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

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

相关文章

【计网】数据链路层笔记

【计网】数据链路层 数据链路层概述 数据链路层在网络体系结构中所处的地位 链路、数据链路和帧 链路(Link)是指从一个节点到相邻节点的一段物理线路(有线或无线),而中间没有任何其他的交换节点。 数据链路(Data Link)是基于链路的。当在一条链路上传送数据时&a…

重学SpringBoot3-整合 Elasticsearch 8.x (二)使用Repository

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 整合 Elasticsearch 8.x (二)使用Repository 1. 环境准备1.1 项目依赖1.2 Elasticsearch 配置 2. 使用Repository的基本步骤2.1 创建实体类2.2 创…

计算机课程管理:Spring Boot与工程认证的协同创新

3系统分析 3.1可行性分析 通过对本基于工程教育认证的计算机课程管理平台实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本基于工程教育认证的计算机课程管理平…

<项目代码>YOLOv8 苹果腐烂识别<目标检测>

YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv8具有更高的…

游戏引擎学习第四天

视频参考:https://www.bilibili.com/video/BV1aDmqYnEnc/ BitBlt 是 Windows GDI(图形设备接口)中的一个函数,用于在设备上下文(device context, DC)之间复制位图数据。BitBlt 的主要用途是将一个图像区域从一个地方复…

SPIRE: Semantic Prompt-Driven Image Restoration 论文阅读笔记

这是一篇港科大学生在google research 实习期间发在ECCV2024的语义引导生成式修复的文章,港科大陈启峰也挂了名字。从首页图看效果确实很惊艳,尤其是第三行能用文本调控修复结果牌上的字。不过看起来更倾向于生成,对原图内容并不是很复原&…

如何平滑切换Containerd数据目录

如何平滑切换Containerd数据目录 大家好,我是秋意零。 这是工作中遇到的一个问题。搭建的服务平台,在使用的过程中频繁出现镜像本地拉取不到问题(在项目群聊中老是被人出来😅)原因是由于/目录空间不足导致&#xff0…

Sharding运行模式、元数据、持久化详解

运行模式 单机模式 能够将数据源和规则等元数据信息持久化,但无法将元数据同步至多个Sharding实例,无法在集群环境中相互感知。 通过某一实例更新元数据之后,会导致其他实例由于获取不到最新的元数据而产生不一致的错误。 适用于工程师在本…

基于springboot+小程序的鲜花管理系统(鲜花1)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 本网上花店微信小程序分为管理员还有用户两个权限,管理员可以管理用户的基本信息内容,可以管理公告信息以及鲜花信息,能够与用户进行相互交流等操作&am…

金融学期末速成笔记

【拯救者】金融学速成(基础习题) 重点: 市场经济是发达的商品经济。在市场经济条件下,市场机制作为资源配置方式,发挥基础性作用。 除具有商品经济的一般特征外,与商品经济相比,市场经济还具有一些新的特征…

后悔没早点知道,Coze 插件 + Cursor 原来可以这样赚钱

最近智能体定制化赛道异常火爆。 打开闲鱼搜索"Coze 定制",密密麻麻的服务报价直接刷屏,即使表明看起来几十块的商家,一细聊,都是几百到上千不等的报价。 有趣的是,这些智能体定制化服务背后,最核心的不只是工作流设计,还有一个被很多人忽视的重要角色 —— …

嵌入式采集网关(golang版本)

为了一次编写到处运行,使用纯GO编写,排除CGO,解决在嵌入式中交叉编译难问题 硬件设备:移远EC200A-CN LTE Cat 4 无线通信模块,搭载openwrt操作系统,90M内存

基于Multisim数字电子秒表0-60S电路(含仿真和报告)

【全套资料.zip】数字电子秒表电路Multisim仿真设计数字电子技术 文章目录 功能一、Multisim仿真源文件二、原理文档报告资料下载【Multisim仿真报告讲解视频.zip】 功能 1.秒表最大计时值为60秒; 2. 2位数码管显示,分辨率为1秒; 3.具有清零…

昇思大模型平台打卡体验活动:项目2基于MindSpore通过GPT实现情感分类

昇思大模型平台打卡体验活动:项目2基于MindSpore通过GPT实现情感分类 1. 载入与处理数据集 在情感分类任务中,我们使用了IMDB数据集,首先需要对数据进行加载和处理。由于原数据集没有验证集,我们将训练集重新划分为训练集和验证…

Mac如何实现最简单的随时监测实时运行状态的方法

Mac book有着不同于Windows的设计逻辑与交互设计,使得Mac book有着非常棒的使用体验,但是在Mac电脑的使用时间过长时,电脑也会出现响应速度变慢或应用程序崩溃的情况,当发生的时候却不知道什么原因导致的,想要查询电脑…

有趣的Midjourney作品赏析(附提示词)

中文提示词:国风少年 C4D软件,高分辨率,超细节,超现实主义, 英文提示词:National Style Youth Cinema4D,high resolution,hyper detailed,surrealism, --niji 6 --ar 1:1 中文提示词:粘土模型,男性穿着中世纪欧洲蓝色盔甲&#x…

时序预测 | gamma伽马模型锂电池寿命预测 EM算法粒子滤波算法结合参数估计

时序预测 | gamma伽马模型锂电池寿命预测 EM算法粒子滤波算法结合参数估计 目录 时序预测 | gamma伽马模型锂电池寿命预测 EM算法粒子滤波算法结合参数估计预测效果基本介绍参考资料 预测效果 基本介绍 gamma伽马模型锂电池寿命预测 EM算法粒子滤波算法结合参数估计 伽马模型、…

男同事36岁,听说被裁拿了12万。今天看到他退了群,但下午领导就反悔了,让他回来,还要把12万补偿退回来

亲爱的读者们,今天咱们来聊聊职场那些事儿。你听说过吗?有位男同事,36岁,被裁了,拿了12万补偿金,然后退了群。你以为这就是结局?不,故事才刚刚开始! 想象一下&#xff0…

李佳琦回到巅峰背后,双11成直播电商分水岭

时间倏忽而过,又一年的双11即将宣告结束。 从双11正式开始前的《新所有女生的offer》,到被作为“比价”标杆被其他平台直播间蹭、被与其他渠道品牌比较,再到直播间运营一时手快多发了红包……整个双11周期下来,李佳琦直播间在刷新…

Golang | Leetcode Golang题解之第546题移除盒子

题目: 题解: func removeBoxes(boxes []int) int {dp : [100][100][100]int{}var calculatePoints func(boxes []int, l, r, k int) intcalculatePoints func(boxes []int, l, r, k int) int {if l > r {return 0}if dp[l][r][k] 0 {r1, k1 : r, k…