百度联系方式人工客服/免费网站做seo
目录
1.Url重写rewrite
2.防盗链
3.静态资源压缩
4.跨域问题
1.Url重写rewrite 🤩🤩🤩
1.1.rewrite书写格式
rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到replacement,结尾是flag标记。
rewrite <regex> <replacement> [flag];
关键字 正则 替代内容 flag标记
- 关键字:其中关键字error_log不能改变
- 正则:perl兼容正则表达式语句进行规则匹配
- 替代内容:将正则匹配的内容替换成replacement
- flag标记:rewrite支持的flag标记
flag标记说明:
last #本条规则匹配完成后,继续向下匹配新的location URI规则
break #本条规则匹配完成即终止,不再匹配后面任何规则
redirect #返回302临时重定向,浏览器地址会显示跳转后的URL地址
permanent #返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
1.2.常用正则表达式说明
\ | 将后面接着的字符标记为一个特殊字符或一个原义字符或一个向后引用。如“\n”匹配一个换行符,而“\$”则匹配“$” |
^ | 匹配输入字符串的起始位置 |
$ | 匹配输入字符串的结束位置 |
* | 匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll” |
+ | 匹配前面的字符一次或多次。如“ol+”能匹 配“ol”及“oll”、“oll”,但不能匹配“o” |
? | 匹配前面的字符零次或一次,例如“do(es)?”能匹配“do”或者“does”,"?"等效于"{0,1}" |
. | 匹配除“\n”之外的任何单个字符,若要匹配包括“\n”在内的任意字符,请使用诸如“[.\n]”之类的模式。 |
1.3.nginx.conf配置
server {listen 80;server_name hqdmdxz.com;location / {rewrite ^/a.png /image/01.png redirect;proxy_pass http://hqdmdxz;proxy_redirect default;proxy_next_upstream error timeout http_500 http_503 http_404;}}
通过测试可以看出,当请求:hqdmdxz/a.png时,会跳转到:hqdmdxz/image/01.png
rewrite重定向
1.4.if指令
该指令用来支持条件判断,并根据条件判断结果选择不同的Nginx配置。
语法 | if (condition){...} |
默认值 | ------------------ |
位置 | server、 location |
condition为判定条件,可以支持以下写法:
- 1.变量名。如果变量名对应的值为空字符串或"0", if都判断为false,其他条件为true
if($param){}
- 2.使用"="和"!=比较变量和字符串是否相等,满足条件为true,不满足为false
if($request_method != POST){}
- 3. 使用正则表达式对变量进行匹配,匹配成功返回true,否则返回false。变量与正则表达式之间使用"-","-""-","-*"来连接。
- "-"代表匹配正则表达式过程中区分大小写
- "~*"代表匹配正则表达式过程中不区分大小写
- "!~"和"!-*"刚好和上面取相反值,如果匹配上返回false,匹配不上返回true
if ($http_user_agent ~* safari){return 200 Chrome;}
1.5.return指令
该指令用于完成对请求的处理,直接向客户端返回。在return后的所有Nginx配置都是无效的。
1.6rewrite_log指令
该指令配置是否开启URL重写日志的输出功能。
语法:rewrite_log on|off;
注:开启后, URL重写的相关日志将以notice级别输出到error_log指令配置的日志文件汇总。
location /rewrite {rewrite_log on;error_log logs/error.log notice;rewrite ^/rewrite/url\w*$ http://192.168.20.129/a.png;rewrite ^/rewrite/(test)\w*$ /$1 redirect;rewrite ^/rewrite/(demo)\w*$ /$1 redirect;}
2.防盗链🤩🤩🤩
防盗链简单来说就是存在我们服务中的一些资源,只有我们规定的合法的一类人才能去访问,其他人就不能去访问的资源(如css,js,img等资源)。
具体体现:
- 准备两台服务器,A服务器跳转到B服务器上,访问B服务器上的图片。
server {listen 80;server_name xz.com;location / {proxy_pass http://192.168.20.129;proxy_redirect default;proxy_next_upstream error timeout http_500 http_503 http_404;}
}
通过xz.com/image/01.png,可以访问到图片
给B服务器添加防盗链配置:
location /image/ {root /data/;autoindex on;valid_referers none blocked 192.168.20.129;if ($invalid_referer) {return 401;}}location /error/ {root /data/;autoindex on;}error_page 401 /401.html;location = /401.html {root html;}
- none: 如果Header中的Referer为空,允许访问 (直接访问图片是没有referer的!!)
- blocked:在Header中的Referer不为空,但是该值被防火墙或代理进行伪装过,如不带"http://" 、"https://"等协议头的资源允许访问。
location /image/ {}
为设置防盗链的文件目录,使用竖线|
分隔。valid_referers 192.168.20.129;
这个是如果返回的头部referer为192.168.20.129那么就不会执行valid_referer下面内容,反之就if ($invalid_referer)
这个含义就是结合上面的valid_referers,如果请求头部为192.168.20.129,那么就$invalid_referer就会被赋值为0,就不会执行返回错误代码401,如果不是www.baidu.com,那么就会赋值为1,就会执行下面内return 403;
代表返回的状态码为403。
测试:
ocation /image/ {root /data/;autoindex on;valid_referers blocked 192.168.20.129;if ($invalid_referer) {return 401;}
}
发现还能访问,为什莫跳转到401.html呢??????
解答:因为我们是直接访问的 ,这种是没有头部的(只有二次请求才会有referer头部),而且我们还加none,(如果Header中的Referer为空,允许访问)。
- 配置中去掉none再次访问:防盗链起作用
至此防盗链生效!!!!
3.静态资源压缩 🤩🤩🤩
在Nginx的配置文件中可以通过配置gzip来对静态资源进行压缩,相关的指令可以配置在http块、server块和location块中, Nginx可以通过
- ngx_http_gzip_module模块
- ngx_http_gzip_static_module模块
- ngx_http_gunzip_module模块
对这些指令进行解析和处理。
注:下面的指令都来自ngx_http_gzip_module模块,该模块会在nginx安装的时候内置到nginx的安装环境中,也就是说我们可以直接使用这些指令。
3.1.gzip指令
1.gizp:用于开启或者关闭gzip功能
2.语法:gzip on|off;
3.2.gzip_types指令
http{gzip on;gzip_types 所选值在mime.types查找
}
3.3.gzip_comp_leve指令
gzip_comp_level指令:该指令用于设置Gzip压缩程度,级别从1-9,1表示要是程度最低,要是效率最高,9刚好相反,压缩程度最高,但是效率最低最费时间。
http {gzip_com_level 级别;
}
3.4gzip_vary指令
gzip_vary指令:该指令用于设置使用Gzip进行压缩发送是否携带"Vary:AcceptEncoding"头域的响应头部。主要是告诉接收方,所发送的数据经过了Gzip压缩处理.
语法:gzip_vary on|off
http {gzip_vary on;
}
3.5.gzip_buffers指令
- 该指令用干处理请求压缩的缓冲区数量和大小。
- 语法:gzip_buffers number size;
其中number:指定Nginx服务器向系统申请缓存空间个数,size指的是每个缓存空间的大小。主要实现的是申请number个每个大小为size的内存空间。这个值的设定一般会和服务器的操作系统有关,所以建议此项不设置,使用默认值即可。
3.6.gzip_disable指令
- gzip_disable指令:针对不同种类客户端发起的请求,可以选择性地开启和关闭Gzip功能。
- 语法:gzip_disable regex...;
regex:根据客户端的浏览器标志(user-agent)来设置,支持使用正则表达式。指定的浏览器标志不使用Gzip.该指令一般是用来排除一些明显不支持Gzip的浏览器。
http{gzip_disable "Mozilla/5.0.*";
}
3.7.gzip_min_length指令
- gzip_min_length指令:针对传输数据的大小,可以选择性地开启和关闭Gzip功能。
- 语法:语法gzip_min_length length;
Gzip压缩功能对大数据的压缩效果明显,但是如果要压缩的数据比较小的话,可能出现越压缩数据量越大的情况,因此我们需要根据响应内容的大小来决定是否使用Gzip功能,响应页面的大小可以通过头信息中的`content-Length`来获取。但是如何使用了Chunk编码动态压缩,该指令将被忽略。建议设置为1K或以上。
http {gzip_min_length 86028;
}
3.8.gzip_proxied指令
- gzip_proxied指令:该指令设置是否对服务端返回的结果进行Gzip压缩。
- 语法:gzip proxied off|expired|no-cache| <br/> no-store | private | no_last_modified | no_etag |auth |any;
off-关闭Nginx服务器对后台服务器返回结果的Gzip压缩
expired-启用压缩,如果header头中包含 "Expires" 头信息
no-cache - 启用压缩,如果header头中包含 "Cache-Control:no-cache" 头信息
no-store-启用压缩,如果header头中包含"Cache-Control:no-store" 头信息
private -启用压缩,如果header头中包含 "Cache-Control:private" 头信息
no_last_modified-启用压缩,如果header头中不包含"Last-Modified" 头信息
no_etag- 启用压缩,如果header头中不包含 "ETag" 头信息
auth-启用压缩,如果header头中包含"Authorization"头信息
any-无条件启用压缩
4.跨域问题🤩🤩🤩
4.1同源策略
- 同源:协议、域名(IP)、端口相同即为同源
4.2什么是跨域
有两台服务器分别为A,B,如果从服务器A的页面发送异步请求到服务器B获取数据,如果服务器A和服务器B不满足同源策略,则就会出现跨域问题。
4.3解决跨域
此处用来解决跨域问题,需要添加两个头信息:
- Access-Control-Allow-Origin:直译过来是允许跨域访问的源地址信息,可以配置多个(多个用逗号分隔),也可以使用*代表所有源
- Access-Control-Allow-Methods:直译过来是允许跨域访问的请求方式,值可以为GETPOST PUT DELETE...可以全部设置,也可以根据需要设置,多个用逗号分隔
location /请求地址 {add_header Access-Control-Allow_orign 允许跨域的id;add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE
}
相关文章:

Nginx【通俗易懂】《中篇》
目录 1.Url重写rewrite 2.防盗链 3.静态资源压缩 4.跨域问题 1.Url重写rewrite 🤩🤩🤩 1.1.rewrite书写格式 rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到rep…...

组件的二次封装
在React中,使用扩展运算符(...)来传递props的作用是将一个对象的所有可枚举属性(包括自身的和继承的)复制到新创建的对象中。当我们在二次封装组件时使用它,可以方便地将所有传递给我们的props传递给基础组…...

curl+postman 在java开发中的使用(提高效率)
概念 curl 是一个常用的命令行工具,用于发送各种类型的 HTTP 请求,包括 GET、POST、PUT、DELETE 等。它也可以用来下载文件、上传文件、设置 cookie、发送 multipart/form-data 等等。 使用 调用post接口 实际中的接口: curl --location…...

【电子取证:FTK IMAGER 篇】DD、E01系统镜像动态仿真
文章目录 【电子取证:FTK Imager 篇】DD、E01系统镜像动态仿真一、DD、E01系统镜像动态仿真 (一)使用到的软件 1、FTK Imager (v4.5.0.3)2、VMware Workstation 15 Pro (v15.5.2)(二)FTK Imager 挂载镜像 1、选择 …...

netcat瑞士军刀
netcat瑞士军刀 1、nc简介3、从示例中学习2、命令格式及常用参数 1、nc简介 nc(netcat)是一个短小精悍、功能实用、简单可靠的网络工具,主要有如下作用: (1)端口侦听,nc 可以作为 server 以 TC…...

【征稿倒计时十天】第三届高性能计算与通信工程国际学术会议(HPCCE 2023)
【有ISSN、ISBN号!!往届均已完成EI检索】 第三届高性能计算与通信工程国际学术会议(HPCCE 2023) 2023 3rd International Conference on High Performance Computing and Communication Engineering (HPCCE 2023) 2023年12月22-24日 | 中国哈尔滨 第三…...

编程应用实际场景:台球厅怎么样用电脑给客人计时,台球计时收费系统操作教程
一、前言 准确控制顾客在店内游玩的时间,从而控制店内的各项成本,并提升店内的客流量。在顾客享受计时项目的时候,可以同时添加其他食物消费,并将单据合并统一结账。软件中的会员功能可以为客户办理会员可以使用灯控器控灯&#…...

云计算大屏,可视化云计算分析平台(云实时数据大屏PSD源文件)
大屏组件可以让UI设计师的工作更加便捷,使其更高效快速的完成设计任务。现分享可视化云分析系统、可视化云计算分析平台、云实时数据大屏的大屏Photoshop源文件,开箱即用! 若需 更多行业 相关的大屏,请移步小7的另一篇文章&#…...

高频js-----js执行机制 Event Loop
修改代码,让代码每隔1秒输出1-5 for (var i 0; i < 5;i) {setTimeout(() > {console.log(i)}, 1000)} 首先我们需要了解js的执行机制 (Event Loop) js是单线层,如果现在执行上面代码的话 会输出 5个5 这里不明白的同学可以去看一下我以前发布的关于EventLoop的文章 …...

恢复出厂设置后在 Android 上恢复照片的 6 种常用方法
恢复出厂设置可帮助您删除电子设备的所有信息并将其恢复到原始系统状态。但是,如果您不小心按下了恢复出厂设置按钮并从 Android 设备中删除了所有难忘的照片,该怎么办?好吧,您无需担心,因为可以通过以下一些方法来恢复…...

人工智能_机器学习065_SVM支持向量机KKT条件_深度理解KKT条件下的损失函数求解过程_公式详细推导_---人工智能工作笔记0105
之前我们已经说了KKT条件,其实就是用来解决 如何实现对,不等式条件下的,目标函数的求解问题,之前我们说的拉格朗日乘数法,是用来对 等式条件下的目标函数进行求解. KKT条件是这样做的,添加了一个阿尔法平方对吧,这个阿尔法平方肯定是大于0的,那么 可以结合下面的文章去看,也…...

网线市场现状与发展趋势预测
随着物联网、5G、云计算等技术的迅速发展,全球对于高速、稳定的网络需求急剧增长,这进一步推动了网线市场的发展。各种网络应用场景,从家庭到企业、数据中心到智能城市,都需要大量的高质量网线来支持数据传输和通信需求。本文将对…...

力扣二叉树--第四十一天
前言 写完这三道题,二叉树部分就先告一段落了。其实还有很多模糊的地方。 内容 一、修剪二叉搜索树 669. 修剪二叉搜索树 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[l…...

计算机视觉(P2)-计算机视觉任务和应用
一、说明 在本文中,我们将探讨主要的计算机视觉任务以及每个任务最流行的应用程序。 二、图像内容分类 2.1. 图像分类 图像分类是计算机视觉领域的主要任务之一[1]。在该任务中,经过训练的模型根据预定义的类集为图像分配特定的类。下图是著名的CIFAR…...

redis-学习笔记(Jedis zset 简单命令)
zadd & zrange zadd , 插入的第一个参数是 zset , 第二个参数是 score, 第三个参数是 member 成员 内部依据 score 排序 zrange 返回 key 对应的 对应区间内的值 zrangeWithScore 返回 key 对应的 对应区间内的值和分数 示例代码 zcard 返回 key 对应的 zset 的长度 示例代…...

uniapp实战 —— 弹出层 uni-popup (含vue3子组件调父组件的方法)
效果预览 弹出的内容 src\pages\goods\components\ServicePanel.vue <script setup lang"ts"> // 子组件调父组件的方法 const emit defineEmits<{(event: close): void }>() </script><template><view class"service-panel"…...

智能优化算法应用:基于平衡优化器算法3D无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于平衡优化器算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于平衡优化器算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.平衡优化器算法4.实验参数设定5.算法…...

Netty详细文档
Netty教程 文章目录 Netty教程 Netty简介Netty 的介绍Netty 的应用场景互联网行业游戏行业大数据领域其它开源项目使用到 Netty Netty 的学习资料参考 Java BIO编程I/O 模型BIO、NIO、AIO 使用场景分析Java BIO 基本介绍Java BIO 工作机制Java BIO 应用实例问题分析 Java NIO编…...

C语言结构体和位段
自定义类型:结构体及联合和枚举 一.结构体类型的声明1.1 结构体的概念1.2结构的声明1.3特殊的声明1.4结构体的自引用1.5可以使用typedef重命名 二.结构体变量的创建和初始化2.1结构体变量的初始化使用{}2.2初始化:定义变量的同时赋初值。2.3结构体嵌套及…...

【剑指offer|图解|数组】寻找文件副本 + 螺旋遍历二维数组
🌈个人主页:聆风吟 🔥系列专栏:数据结构、剑指offer每日一练 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 一. ⛳️寻找文件副本(题目难度:简单)1.1 题目1.2 示例1.3 限制1.4 解题思路一c代…...

Python核心编程之文件和输入输出
目录 一、文件对象 二、 文件内建函数[open()和file()] 1、工厂函数 file() 2、通用换行符支持(UNS)...

Axure 9基本元件,表单及表格元件简介,表单案例
目录 一.基本元件 1.元件基本介绍 2.基本元件的使用 二.表单及表格元件 三.表单案例 四.简单简历绘制 一.基本元件 1.元件基本介绍 概述 - 在Axure RP中,元件是**构建原型图的基础模块**。 将元件从元件库里拖拽到画布中,即可添加元件到你的原型…...

ARM I2C通信
1.概念 I2C总线是PHLIPS公司在八十年代初推出的一种串行的半双工同步总线,主要用于连接整体电路2.IIC总线硬件连接 1.IIC总线支持多主机多从机,但是在实际开发过程中,大多数采用单主机多从机模式 2.挂接到IIC总线上,每个从机设备都…...

Cent OS7 磁盘挂载:扩展存储空间和自动挂载
文章目录 (1)概述(2)查看磁盘使用情况(3)VMware虚拟机挂载磁盘(4)物理机磁盘挂载(5)ntfs硬盘处理 (1)概述 在Linux系统中,…...

《使用ThinkPHP6开发项目》 - 创建应用
《使用ThinkPHP6开发项目》 - 安装ThinkPHP框架-CSDN博客 《使用ThinkPHP6开发项目》 - 设置项目环境变量-CSDN博客 《使用ThinkPHP6开发项目》 - 项目使用多应用开发-CSDN博客 根据前面的步骤,我们现在就可以开发我们的项目开发了,根据项目开发的需要…...

SpringBoot进行自然语言处理,利用Hanlp进行文本情感分析
. # 📑前言 本文主要是SpringBoot进行自然语言处理,利用Hanlp进行文本情感分析,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风…...

MySQL 报错 You can‘t specify target table for update in FROM clause解决办法
You can’t specify target table for update in FROM clause 其含义是:不能在同一表中查询的数据作为同一表的更新数 单独执行复合查询是正常的,如下: 但是当执行子查询删除命令时,报如下错误 DELETE FROM abpusers WHERE Id I…...

Linux中使用podman管理容器
本章主要介绍使用podman管理容器 了解什么是容器,容器和镜像的关系安装和配置podman拉取和删除镜像给镜像打标签导出和导入镜像创建和删除镜像数据卷的使用管理容器的命令使用普通用户管理容器 对于初学者来说,不太容易理解什么是容器,这里…...

飞天使-linux操作的一些技巧与知识点3-http的工作原理
文章目录 http工作原理nginx的正向代理和反向代理的区别一个小技巧dig 命令巧用 http工作原理 http1.0 协议 使用的是短连接,建立一次tcp连接,发起一次http的请求,结束,tcp断开 http1.1 协议使用的是长连接,建立一次tc…...

微搭低代码实现登录注册功能
目录 1 创建用户数据源2 实现登录逻辑3 搭建登录页面4 设置登录框5 实现登录的逻辑6 用户注册总结 原来产品在创建应用的时候可以创建模型应用,模型应用对应我们小程序的后端。最新的更新已经将模型应用的能力下线,那我们不得不自己实现一下后端的逻辑。…...