Nginx【Nginx核心指令(Gzip压缩指令)、Nginx场景实践(浏览器缓存、防盗链)】(七)-全面详解(学习总结---从入门到深化)

news2024/12/23 22:42:21

 

目录

Nginx核心指令_Gzip压缩指令

Nginx场景实践_浏览器缓存

Nginx场景实践_防盗链


Nginx核心指令_Gzip压缩指令

Nginx开启Gzip压缩功能, 可以使网站的css、js 、xml、html 文件 在传输时进行压缩,提高访问速度, 进而优化Nginx性能!

Gzip压缩作用 

将响应报⽂发送⾄客户端之前可以启⽤压缩功能,这能够有效地节 约带宽,并提⾼响应⾄客户端的速度。Gzip压缩可以配置 http,server和location模块下。Nginx开启Gzip压缩参数说明:

 

如下是线上常使用的Gzip压缩配置 

http {
   gzip on;
   gzip_min_length 1k;
   gzip_buffers     4 16k;
   gzip_http_version 1.1;
   gzip_comp_level 9;
   gzip_types       text/plain
   application/x-javascript text/css
   application/xml text/javascript
   application/x-httpd-php
   application/javascript application/json;
   gzip_disable "MSIE [1-6]\.";
   gzip_vary on;
}

Nginx的Gzip压缩功能虽然好用,但是下面两类文件资源不太建议启用此压缩功能。

1) 图片类型资源 (还有视频文件)

原因:图片如jpg、png文件本身就会有压缩,所以就算开启 gzip后,压缩前和压缩后大小没有多大区别,所以开启了反而会 白白的浪费资源。

2) 大文件资源

原因:会消耗大量的cpu资源,且不一定有明显的效果。

实时效果反馈

1. 下列描述gzip指令不正确的是____。

A 提高访问速度

B 节约带宽 

C gzip适用任何文件类型

D 提高响应效率

Nginx场景实践_浏览器缓存

浏览器缓存 

浏览器缓存是为了加速浏览,浏览器在用户磁盘上,对最近请求过 的文档进行存储。当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样,就可以加速页面的阅览,缓存的方式节 约了网络的资源,提高了网络的效率。

实现浏览器缓存步骤

浏览器缓存可以通过expires指令输出Header头来实现。

语法:expires[time| epoch | max |off]

默认值:expires off

作用域:http、server、location 

一个HTML页面,会引用一些JavaScript文件、图片文件、而这些格 式的文件很少会被修改,则可以通过expires设置浏览器缓存。

示例

比如,对常见格式的图片、Flash文件在浏览器本地缓存30天,对 JS、CSS文件在浏览器本地缓存1小时,代码如下

location ~ .*\.(gif|jpg|png)$
{
   expires 30d;
}
location ~.*\.(js|css)?$
{
   expires 1h;
}

 Cache-Control

设置相对过期时间, max-age指明以秒为单位的缓存时间. 若对静态 资源只缓存一次, 可以设置max-age的值为315360000000 (一万年). 比如对于提交的订单,为了防止浏览器回退重新提交,可以使用 Cache-Control之no-store绝对禁止缓存,即便浏览器回退依然请求的是服务器,进而判断订单的状态给出相应的提示信息!

 Http协议的cache-control的常见取值及其组合释义:

  • no-cache: 数据内容不能被缓存, 每次请求都重新访问服务器, 若有max-age, 则缓存期间不访 问服务器
  • no-store: 不仅不能缓存, 连暂存也不可以(即: 临时文件夹中不能暂存该资源)
  • private(默认): 只能在浏览器中缓存, 只有在第一次请求的时候才访问服务器, 若有- - max-age, 则缓存期间不访问服务器
  • public: 可以被任何缓存区缓存, 如: 浏览器、服务器、代理服务器等
  • max-age: 相对过期时间, 即以秒为单位的缓存时间

语法结构: 

# expires 1d;

add_header Cache-Control no-cache;

add_header Cache-Control private;

缓存流程 

企业实战示例

下面是开发部门同事发过来的配置需求:

1 禁用html文件缓存,即cache control设置为no-cache;

2 对于js,图片,css,字体等,设置max-age=2592000. 也就是30天; 

注意: 缓存控制字段cache-control的配置(add_header)要放在http, server, location区域, 或是放在location的if判断里, 例 如"add_header Cache-Control no-cache;" 

配置源码 

server{
 listen 80;
 server_name 192.168.66.100;
 location ~ \.                
(css|js|gif|jpg|jpeg|png|bmp|swf|ttf|woff|otf|ttc|pfa)$ {
     root /data/web/kevin;
     expires 30d;
   }
   location ~ \.(html|htm)$ {
     root /data/web/kevin;
     add_header Cache-Control no-cache;
   }
}

实时效果反馈

1. 配置浏览器缓存主要目的是____。

A 提高访问速度

B 节约带宽

C 安全性

D 加速浏览,提高用户体验

2. Http协议的cache-control如何设置过期时间。

A no-store

B max-age

C public

D private

Nginx场景实践_防盗链

防盗链的概念 

内容不在自己的服务器上,通过技术手段将其他网站的内容(比如 一些音乐、图片、软件的下载地址)放置在自己的网站中,通过这种方法盗取其他网站的空间和流量。

 

防盗链技术背景 

防止第三方引用链接访问我们的图片,消耗服务器资源和网络流量,我们可以在服务器上做防盗链限制。

防盗链设置思路 

首要方式:区别那些请求是非正常的用户请求。

基于http_refer防盗链配置模块 

HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来 的,服务器籍此可以获得一些信息用于处理。比如从我主页上链接 到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天 有多少用户点击我主页上的链接访问他的网站。

语法结构: 

valid_referers none blocked 192.168.66.100;
if ($invalid_referer) {
   return 403;
}

参数:

none : 允许没有http_refer的请求访问资源;

blocked : 允许不是http://开头的,不带协议的请求访问资源;

192.168.66.100: 只允许指定ip来的请求访问资源;

 实时效果反馈

1. 使用防盗链技术主要解决___问题。

A 防止第三方引用链接访问我们的资源。

B 节约带宽

C 安全性

D 加速浏览,提高用户体验

2. 防盗链问题在Nginx技术中通过__指令处理。

A priavte

B no_cache

C invalid_referer 

D valid_referers

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

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

相关文章

使用OpenCV工具包成功实现人脸检测与人脸识别,包括传统视觉和深度学习方法(附完整代码,吐血整理......)

使用OpenCV工具包实现人脸检测与人脸识别(吐血整理!) OpenCV实现人脸检测OpenCV人脸检测方法基于Haar特征的人脸检测Haar级联检测器预训练模型下载Haar 级联分类器OpenCV-Python实现 基于深度学习的人脸检测传统视觉方法与深度学习方法对比 O…

爱不释手的六款IDEA神仙插件,开发效率翻倍!

一、前言 作为一名开发人员,在众多的 IDE 中,IntelliJ IDEA 无疑是最受欢迎和强大的选择。 除了其本身的功能外,IntelliJ IDEA 还支持各种强大的插件,这些插件可以进一步增强开发体验和效率。 这些插件就像是一些神奇的存在&…

uni-app如何生成海报图片

项目场景: 在uni-app中,通过点击邀请分享海报的方式,可以展示不同的海报,并通过扫描海报上的二维码来实现用户之间的关系绑定,从而实现分销功能;每次生成的海报样式都可能不同,可以根据后台配置…

Java实现PDF转Word【收集整理】

首先感谢 Mgg9702 博主提供的转换依赖包处理,关于如何获得一个破解的pdf转word我这里就不追述了,有需要去看: https://blog.csdn.net/Mgg9702/article/details/124987483?spm1001.2014.3001.5506 我这里主要涉及到整理一个pdf转word的jar工…

Spring Boot原理分析 | SpringApplication、Yaml、Properties

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Spring Boot Spring开源框架,轻量级的Java开发框架,解决企业级应用开发的复杂性而创建,简化开发 基于POJO的轻量级和最小侵入型编程…

【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(6月 30 日论文合集)

文章目录 一、分割|语义相关(8篇)1.1 MIS-FM: 3D Medical Image Segmentation using Foundation Models Pretrained on a Large-Scale Unannotated Dataset1.2 KITE: Keypoint-Conditioned Policies for Semantic Manipulation1.3 SeMLaPS: Real-time Semantic Mapping with La…

labelme的json标签和图像改变分辨率,再将json转换为YOLO的txt格式进行实例分割

最近在做一个分割数据集,训练数据时由于图像数据太大一直爆显存,然后就找了找同时resize图像和json的脚本,然后转换为YOLO格式一直出问题,标签和目标位置对不上,也是困扰了好久,终于解决,记录一…

惠普笔记本U盘重装Win10系统步骤

当惠普笔记本出现系统故障或需要清除所有数据时,通过使用U盘重新安装Win10系统是一个常见且有效的解决方法。重新安装系统可以解决许多问题,并为用户提供一个干净、流畅的操作环境。以下小编将为用户介绍惠普笔记本U盘重装Win10系统步骤。请注意&#xf…

手把手教学,Python 游戏编程之实现飞机大战(含源代码)

文章目录 一、游戏设定 1、游戏界面展示和设定 二、实现过程 1.我方飞机 2、敌方飞机 3、定义武器 4、武器补充库 5、主模块 总结: 前言 我想大家都是有玩过类似飞机大战的射击类游戏,也享受目标被消除通过后带来的愉悦感。 那么如果用Python来实现飞机…

Image Sensor的窗口裁剪

本文介绍Image Sensor的窗口裁剪,Image Sensor的实际像素通常是大于实际所支持的最大分辨率的,有时为了获得想要的分辨率及位置(比如与镜头装配相匹配),需要设置Image Sensor的像素输出位置及大小,本文以OS…

为什么向导式对话框中的取消按钮始终可用

PropSheet_SetWizButtons 是一个宏,其定义位于 PRSHT.H 头文件中,实际上,它只是调用了 PostMessage 函数来向目标窗口发送 PSM_SETWIZBUTTONS 这个消息,仅此而已。 如果你亲自上阵体验一番,就会发现有这么一个问题(特…

c++ stl 之vector使用

参考:https://www.runoob.com/cplusplus/cpp-stl-tutorial.html “C STL(标准模板库)是一套功能强大的 C 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向…

特征向量可视化01_tsne_pca

在学习机器学习或深度学习基础知识的同时训练模型是一个非常有指导性的过程。该数据集易于理解且格式适当,可供您使用。然而,当您走进现实世界并尝试解决行业或现实生活中的挑战时,数据集如果一开始就不存在,通常会很混乱。理解为…

uniapp怎么把px转换成对应手机型号的rpx

首先获取系统手机屏幕的宽度系统信息的概念 | uni-app官网,然后根据公式转换 rpx 750*元素 B 在设计稿上的宽度为 多少px/手机屏幕的宽度 详见:CSS 支持 | uni-app官网 如下为把宽度为1px的转成对应手机型号的rpx uni.getSystemInfo({success(res) {co…

网络营销VS传统营销有什么区别?

随着互联网的普及和发展,网络营销已经成为企业营销的重要手段之一。相比传统营销,网络营销具有更多的优势和特点。本文将从市场环境、营销手段、成本效益等方面,分析网络营销与传统营销的区别。#网络营销# 一、市场环境不同 传统营销主要是通…

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

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

[pyqt5]动态加载ui文件并给菜单的一个子菜单添加触发事件

场景:大家都知道如果直接将ui文件转成py文件后,如果产品经理要你加一些界面控件,你就得改转换后代码这样很麻烦,我们可以直接加载ui文件,然后编写触发事件,因此写了一个简单案例,证明切实可行&a…

微服务:Springboot集成Hystrix实现熔断、降级、隔离

文章目录 前言知识积累Springboot集成Hystrix1、maven依赖引入2、application开启feign的hystrix支持(客户端配置限流降级熔断)3、入口类增加EnableFeignClients EnableHystrix 开启feign与hystrix4、feign调用增加降级方法服务端配置限流降级熔断(选择使…

stm32 使用keil无实物(软件)仿真,虚拟串口通讯

准备 1.keil 2.vspd虚拟串口 3.sscom串口助手 4.CubeMX //哪里报错no ‘read‘ permission,把哪里map一下 map 0x40000000, 0x400077FF read write // APB1 map 0x40010000, 0x40014BFF read write // APB2 map 0x40020000, 0x4007FFFF read write …

​​国风写实虚拟人频“营业”,塑造国潮文化元宇宙入口

近几年,随着时代话语权逐渐递交给Z世代的年轻人,文化自信成为了主流审美,国风虚拟人激发了年轻人心中的民族文化自豪感。 国风虚拟人谷小雨频营业,发布了“中文之美”虚拟人动画,穿越古今四时感受“雨”字流转之美&am…