首页 > 系统相关 >nginx学习记录

nginx学习记录

时间:2024-07-19 10:57:06浏览次数:18  
标签:缓存 请求 记录 端口 server 学习 nginx client

目录

监听端口

假设代码中,我监听8003端口,意味着我可以通过访问8003端口来获得数据

  • 将所有请求进行转发,即访问8003端口,nginx会将“访问8003端口”这一请求,转发到设定的地址
  • 这就实现了,访问的是8003端口,实际上访问的却是转发的地址

nginx缓冲和缓存

缓冲

client端到server端(nginx和服务器端在同一片服务器)的网速慢,可以通过NGINX缓冲buffer来异步发送获取信息

  • 缓冲是存在内存中的
  1. 发送请求到nginx
  2. nginx发送请求到server
  3. server返回连接所需信息到nginx的缓冲buffer中
  4. buffer中的数据慢慢发送给client,此时server的连接就被解放,可以给其他连接使用
server
| |...| 50mb/s
nginx(buffer)
| |...| 10kb/s
client

优点与作用

  • 优化nginx到后端连接的响应时间(使用内部连接网速快)
  • 通过更快释放server端的连接,来解决server端连接同时过多的问题,保证稳定向客户端传递响应
  • 动态请求启用缓冲,来进行优化

缓存

可以通过NGINX缓存cache来发送获取信息

  • 缓存是存在磁盘中的
  1. 发送请求到nginx
  2. nginx发送请求到server
  3. server一次返回所有信息到nginx的缓存cache中
  4. cache中的数据发送给client
  5. 此时若有其他连接发送相同请求,也无需再进行上述步骤,而是直接缓存cache中获取信息
server
|
nginx(cache)
| |...| 10kb/s
client

优点与作用

  • 减少server端的请求数量
  • client发送相同请求时可以直接访问nginx缓存,因此提高了client端的响应速度
  • 所以nginx一般将静态文件等需要多次访问的文件放入缓存(动态也可以,但动态一般放到Redis分布式缓存)
    • Redis作为内存数据库,其读写性能远高于Nginx。
    • 如果使用Nginx作为动态缓存,你需要在Nginx层面进行配置,并且可能需要编写特定的模块来处理动态内容的缓存。而Redis通常有成熟的客户端库,可以用来管理缓存,并且可以通过Redis的数据结构来控制缓存的策略。
    • 而静态缓存方面,Nginx专门设计用于处理静态内容的分发,将这些内容放入Redis可能会增加不必要的复杂性和性能开销。

nginx负载均衡

  • 轮循机制(负载均衡默认采用)

    • 我们给监听的8003端口,配置了两个后台应用8080和8088

    • 而第一次请求假设访问的是8080,登录后又将请求转发给8088

    • 而在8088上没有登录,因此显示登录超时

  • 最小连接:下一个请求分配给活动连接数最少的服务器(较为空闲的机器)

    • 依然可能会出现上述问题
  • Ip-hash

    • Ip作为key,同一Ip发送的请求分配给同一服务器

权重

能者多劳:有的服务器内存大,转发给它的请求就多

健康检查

反向代理中,如果某个后端服务器某个时间段内响应失败次数超过规定值,nginx将这个服务器标记为失败,并在之后一个周期内不再将请求发送给该失败的服务器

标签:缓存,请求,记录,端口,server,学习,nginx,client
From: https://www.cnblogs.com/kwqlj/p/18311060

相关文章

  • 机器学习中常用的数据类型
    常用的数据类型有FP64、FP32、FP16、BFLOAT16等FP64FP64表示64位浮点数,通常为IEEE754定义的双精度二进制浮点格式,由1位符号位、11位指数位、52位小数位组成表示范围:正数范围:约4.9x10e-324~1.8x10e308负数范围:约-1.8x10e308~-4.9x10e-324通常用于精度要求......
  • RabbitMQ学习实践一:MQ的安装
    文章是本人在学习springboot实现消息队列功能时所经历的过程的记录,仅供参考,如有侵权请随时指出。参考文章地址:RabbitMQ安装与入门_rabbitmqwin11配置-CSDN博客RabbitMQ入门到实战一篇文章就够了-CSDN博客RabbitMQ系列(18)--RabbitMQ基于插件实现延迟队列_rabbitmq延迟队列插......
  • 【CSS学习第一篇】
    CSS学习第一篇1.CSS简介1.1什么是CSS?1.2CSS语法规范2.CSS选择器2.1CSS选择器的作用2.2CSS选择器的分类2.3标签选择器2.4类选择器2.5id选择器2.6通配符选择器3.CSS字体属性3.1font-family设置字体系列3.2font-size字号大小3.3font-weight字体粗细3.4font......
  • 暑假两个月学习AI产品经理详细路线,看这一篇就够了
    以下是一个暑假期间学习AI产品经理的详细路线,分为八个周来进行:第1周:了解AI产品管理基础阅读材料:《人工智能:一种现代的方法》了解AI基础。《人人都是产品经理》了解产品管理基础。在线课程:Coursera上的“人工智能基础”课程。edX上的“产品管理基础”课程。实践:调研......
  • Nodify学习 三:连接器
    前置连接概述连接是由两个点之间创建的。Source和Target依赖属性是Point类型,通常绑定到连接器的Anchor点。基本连接库中所有连接的基类是BaseConnection,它派生自Shape。在创建自定义连接时,可以不受任何限值地从BaseConnection派生。它公开了两个命令及其对应的事件:Disconne......
  • jmter基本设置-第一次上手的记录
    一个线程组至少需要添加以下几个元件 添加http信息头管理器2.http请求默认值  3.添加断言 4.查看结果树.......
  • 计算机毕业设计Python+Tensorflow小说推荐系统 K-means聚类推荐算法 深度学习 Kears
    2、基于物品协同过滤推荐算法2.1、基于⽤户的协同过滤算法(UserCF)该算法利⽤⽤户之间的相似性来推荐⽤户感兴趣的信息,个⼈通过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的⽬的进⽽帮助别⼈筛选信息,回应不⼀定局限于特别感兴趣的,特别不感兴趣信息的纪录也相......
  • 计算机毕业设计PySpark+Django高考志愿填报推荐系统 高考预测 高考大数据分析 Hadoop
    摘要本文旨在设计与实现一个基于Spark的高考志愿填报推荐系统,旨在帮助高考生根据自身成绩和兴趣,精准推荐合适的大学和专业。系统采用大数据处理框架Spark,结合机器学习算法,实现了对高考数据的深度挖掘和分析,为考生提供科学、有效的志愿填报建议。系统捕捉考生个人特征、......
  • 深度学习中的正则化技术 - Dropout篇
    序言在深度学习的浩瀚领域中,模型过拟合一直是研究者们面临的挑战之一。当模型在训练集上表现得近乎完美,却难以在未见过的数据(测试集)上保持同样优异的性能时,过拟合现象便悄然发生。为了有效缓解这一问题,Dropout......
  • k8s学习--pod的所有状态详解(图例展示)
    在Kubernetes中,Pod是最小的可部署计算单元。Pod有多种状态,每种状态都反映了Pod的生命周期的不同阶段。以下是Pod的所有状态及其详细解释:状态转换示意图1.Pending描述:Pod被创建并通过了调度器,但还没有绑定到任何节点,也可能容器镜像还在下载中。原因:没有足够......