Nginx【Nginx场景实践(动静分离、动静分离实战、缓存机制)】(十)-全面详解(学习总结---从入门到深化)

news2024/12/24 8:38:31

目录

Nginx场景实践_动静分离

Nginx场景实践_动静分离实战

Nginx场景实践_缓存机制


Nginx场景实践_动静分离

Nginx动静分离简单来说就是把动态和静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求和静态请求分开,可以理解成使用Nginx处理静态请求, Tomcat处理动态请求。 

什么是动静分离 

动:必须依赖服务器生存的文件 比如jsp。

静:不需要依赖容器的比如css/js或者图片等文件

动静分离的好处

  • Nginx本身就是一个高性能的静态web服务器
  • 其实静态文件有一个特点就是基本上变化不大,所以动静分离以后我们可以对静态文件进行缓存、 或者压缩提高网站性能

静态资源的类型 

在Nginx的conf目录下,有一个mime.types文件里边列出了 静态资源的类型,如下:

当用户访问一个网站,然后从服务器端获取相应的资源,通过浏览器进行解析渲染最后展示给用户,服务端可以返回各种类 型的内容,比如xml、jpg、png、gif、flash、MP4、html、 css等等,浏览器就是根据mime-type来决定用什么形式来解析和展示的。服务器返回的资源给到浏览器时,会把媒体类型告知浏览器,这个告知的标识就是Content-Type,比如ContentType:text/html。 

实时效果反馈

1. 动静分离最主要的作用是____。

A 提高网站性能

B 安全性

C 稳定性

D 可靠性

2.下列文件类型是动态资源文件的是____。

A js

B css

C img 

D jsp

Nginx场景实践_动静分离实战

 静态资源的准备

在服务器中准备文件夹放置图片、css、js。

# mkdir -p /usr/local/nginx/static

通过请求分离 

upstream webservers {
       server 192.168.66.101:8080 weight=5;
       server 192.168.66.102:8080 weight=5;
}
   server {
       listen       80;
       server_name *.*;
       location / {
             root   html;
           index index.html index.htm;
           proxy_set_header Host $host;
           proxy_pass http://webservers;
       }
       location /image/ {
           root static;
       }
       location /web/ {
           proxy_set_header Host $host;
           proxy_pass http://webservers;
       }
   }
}

根据扩展名分离

upstream webservers {
       server 192.168.66.101:8080 weight=5;
       server 192.168.66.102:8080 weight=5;
}
   server {
       listen       80;
       server_name *.*;
       location / {
           root   html;
           index index.html index.htm;
           proxy_set_header Host $host;
           proxy_pass http://webservers;
       }
       location ~ .*.(jpg|png|gif|css|js)$
        {
         root static;
      }
   }
}

实时效果反馈

1. 最常见的动静分离方式是____。

A 基于拓展名

B 基于请求

C 基于客户标识

D 基于pc和移动

Nginx场景实践_缓存机制

核心: 

响应速度历来是衡量WEB应用和服务性能优劣的重要指标之 一,尤其动态网站在网络上泛滥的今天。除了优化发布内容以外,另外一个主要的办法就是把不需要实时更新的动态页面输 出结果转为静态网页形式缓存,进而按照静态网页来访问。

proxy Cache缓存机制 

配置proxy_cache模块 

语法结构

在nginx.conf文件中添加如下代码:

http{
   ......
   proxy_cache_path /data/nginx/tmp-test
   levels=1:2 keys_zone=tmp-test:100m
   inactive=7d max_size=1000g;
}

参数说明:

  • proxy_cache_path 缓存文件路径 levels 设置缓存文件目录层次;
  • levels=1:2 表示两级目录
  • keys_zone 设置缓存名字和共享内存大小
  • inactive 在指定时间内没人访问则被删除
  • max_size 最大缓存空间,如果缓存空间满,默认覆盖掉缓存时间最长的资源。

当配置好之后,重启nginx,如果不报错,则配置的 proxy_cache会生效

查看 proxy_cache_path / data/ nginx / 目录, 会发现生成了 tmp -test 文件夹。 

如何使用proxy_cache 

语法配置

location /tmp-test/ {
 proxy_cache tmp-test;
 proxy_cache_valid 200 206 304 301 302 10d;
 proxy_cache_key $uri;
 proxy_set_header Host $host:$server_port;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header   X-Forwarded-For         
 $proxy_add_x_forwarded_for;
 proxy_pass
 http://127.0.0.1:8081/media_store.php/tmp-test/;
}
参数: 
Proxy_cache tmp -test 使用名为 tmp -test 的对应缓存配置
proxy_cache_valid 200 206 304 301 302 10d; 对httpcode为200…的缓存10天
proxy_cache_key $uri 定义缓存唯一key,通过唯一key来进行hash存取
proxy_set_header 自定义http header头,用于发送给后端真实服务器。
proxy_pass 指代理后转发的路径,注意是否 需要 最后的 /

提出问题

到此,就完成了最基本的proxy_cache配置和访问过程介绍,但是最基本的配置,往往无法满足我们的业务需求,我们往往会提出以下疑问和需求:

1、需要主动清理缓存文件

解决问题

location /tmp-test/ {
       allow 127.0.0.1; //只允许本机访问
       deny all; //禁止其他所有ip
       proxy_cache_purge tmp-test $uri; //清理缓存
}

实时效果反馈

1. 下列____对软件做压力测试的工具。

A maven

B post

C Jmeter

D spring

2.影响网络访问速度的最主要因素是___。

A 网络带宽

B 访问距离

C 服务器处理能力

D 硬件配置

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

@Transaction事务导致的mysql连接耗尽源码分析

背景: Transaction注解是我们在日常的写代码过程中最常使用的事务注解了,本文就从spring源码的角度解析下这个注解的执行过程,以便分析为什么使用事务比正常的单sql执行更容易导致连接池耗尽 源码追踪: 本文假定使用PROPAGATIO…

音频怎么转文字?试试这三个简单的方法吧!

有时候我们会遇到一些比较重要的会议、讲座或者演讲,如果我们能够将这些声音记录下来,并将其转换为文字,就可以更加方便地保存和管理这些信息。这样,我们就不用再去听录音了,只需要看文字就可以了。此外,录…

智能指针的deleter机制

一、介绍 智能指针的deleter机制是指,当智能指针的引用计数降为0时,智能指针会自动调用一个指定的析构函数(deleter)来释放所管理的内存。这个析构函数通常是一个函数对象,可以是一个函数指针、一个lambda表达式或者一…

青少年机器人技术一级考试备考重点(四):功与能量以及常用传动装置

随着机器人技术的飞速发展,越来越多的青少年开始关注并参与其中。青少年机器人技术考试作为一项评估学生机器人技术水平的重要考试,备受广大青少年和家长的关注。为了更好地备战青少年机器人技术一级考试,了解考试的学习要点和备考重点是非常…

C++数据结构X篇_07_C++单向循环链表解决约瑟夫问题

本篇参考单向循环链表解决约瑟夫问题(C)整理,先搞懂结构框架,后期根据视频利用c对内容实现,也可以对c有更高的提升。 文章目录 1. 链表创建与初始化2. 添加插入、删除和打印函数3. 插入数据并核验4. 解决约瑟夫问题&am…

DM8:达梦数据库备份还原报错-文件已存在 -4558 file exists

DM8:达梦数据库备份还原报错-文件已存在 -4558 file exists 1 文件已存在 -4558 file exists2 使用 OVERWRITE 参数对数据库还原3 参数介绍 1 文件已存在 -4558 file exists 在数据库还原操作时,遇到报错文件已存在 -4558 file exists,可以使用OVERWRIT…

IP归属地与IP定位

IP归属地查询是指根据给定的IP地址,确定该IP地址所属的地理位置或网络服务提供商。这种查询可以帮助用户了解到访者的地理位置,有助于网络安全、反垃圾邮件等应用。 在实际应用中,IP归属地查询常用于以下几个方面: 网络安全&…

vcruntime140_1.dll详细修复方法(推荐使用这个方法)

vcruntime140_1.dll丢失要怎么办?其实很多人都在头疼这个问题,关于dll文件的丢失这事情是时常发生的,因为电脑的杀毒软件有时候会误杀,然后就会导致你的游戏程序都打开不了,你必须要修复好了才行,今天小编就…

【UE5 Cesium】09-Cesium for Unreal 子关卡应用实例(下)

效果 通过按钮点击事件实现子关卡的切换 步骤 新建两个Actor蓝图作为GeoMarker,分别命名为“BP_GeoMarker_BeiJing”、“BP_GeoMarker_ShangHai” 分别打开这两个蓝图,添加文本渲染组件 在指定的地理位置上拖入蓝图“BP_GeoMarker_BeiJing” 控制“BP_…

分布式缓存系统热点数据

一、背景 分布式缓存一般被定义为一个数据集合,它将数据分布(或分区)于任意数目的集群节点上。集群中的一个具体节点负责缓存中的一部分数据,整体对外提供统一的访问接口 Amazon 于 2007 年提出的一种改进的一致性哈希算法 [4]。…

华为OD机试真题 Java 实现【查找单入口空闲区域】【2022 Q4 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 一、题目描述 给定一个 m x n 的矩阵,由若干字符 ‘X’ 和 ‘O’构成,’X’表示该处已被占据,’O’表示该处空闲,请找…

【JS】将表格数据下载为 .csv 文件

文章目录 代码实现 代码实现 1. 将表格数据转换为字符串格式 2. 字符串格式里面的,逗号表示换列 3. 字符串格式里面的\n符号表示换行实现 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><…

Linux(包括centos) 如何查看服务器内存、CPU

CPU架构 CPU架构主要包括&#xff1a;amd64、arm32v7、arm64v8、mips64el、mips32、ppc64le和ppc32等架构。 CPU信息 CPU信息主要为中央处理器详细信息&#xff0c;包括&#xff1a; 架构核心数量处理速度厂商名称CPU主频标签 … 注&#xff1a;不同的操作系统或者CPU架构提供…

怎么提取视频中的音频?这些提取音频方法很简单

将视频中的音频提取出来&#xff0c;可以单独对音频进行处理&#xff0c;如剪辑、增强声音等&#xff0c;而不影响视频本身的内容。在后期制作中&#xff0c;音频需要经过一系列的处理&#xff0c;如去噪、降噪、混响等&#xff0c;提取出音频可以更方便地进行这些处理&#xf…

MHA高可用

文章目录 MHA高可用1 定义2 组成3 特点4 搭建MySQL MHA4.1 配置主从复制4.2 关闭防火墙&#xff0c;安全机制4.3 修改Master、Slave1、Slave2节点的主机名4.4 添加主机映射关系4.5 修改 Master、Slave1、Slave2 节点的 Mysql主配置文件/etc/my.cnf4.6 在master、slave1、slave2…

2023年--上半年小程序团队工作总结

前言 大家好&#xff0c;这是小程序团队第一次跟大家见面。小程序团队从2020年开始&#xff0c;就着手进行着小程序的开发。 在2020年7月上线了第一个现在仍在使用的上古小程序&#xff1a;课程小程序 和 我的内容库小程序。 小伙伴们可能还不知道&#xff0c;你们平时日常在cs…

10分钟看透微信公众号支付

开发痛点 如何配置微信&#xff1f;怎么个流程&#xff1f;怎么入手&#xff1f;如何本地调试&#xff1f;网上教程10个小时不想看怎么办&#xff1f;这里一篇文章带你入手微信支付。看看微信公众号支付到底有什么神奇之处。 开发后结果 微信配置 1、首先打开文档中心&#…

dy系点选验证码协议2023/07/3 一直可用

前言 可以关注我哟,一起学习,主页有更多练习例子 如果哪个练习我没有写清楚,可以留言我会补充 如果有加密的网站可以留言发给我,一起学习共享学习路程 如侵权,联系我删除 此文仅用于学习交流,请勿于商用,否则后果自负 因为需求不得不搞,小白一个,哪有不对,大佬多多…

Linux 学习记录44(C++篇)

Linux 学习记录44(C篇) 本文目录 Linux 学习记录44(C篇)一、静态成员变量/函数1. 静态成员变量2. 静态成员函数 二、继承1. 继承的作用2. 继承的格式3. 子类对父类中成员的继承4. 子类中存在和父类同名成员时5. 继承中特殊的成员函数(1. 构造函数(2. 析构函数(3. 拷贝构造函数(…

OpenAI遭集体诉讼!窃取数百万用户信息?明星大模型变“数据小偷”!

“尽管制定了购买和使用个人信息的协议&#xff0c;但被告采取了不同的方法&#xff1a;窃取。”近日&#xff0c;一家律师事务所用一份长达157页的诉讼将OpenAI告到法庭&#xff0c;指控其在利润的驱使下&#xff0c;窃取大量个人信息来训练人工智能模型。 起诉书称&#xff0…