当前位置: 首页 > news >正文

location匹配的优先级和重定向

nginx的重定向(rewrite)

location 匹配

location匹配的就是后面的uri

/wordpress 192.168.233.10/wordpress

location匹配的分类和优先级

1.精确匹配

location = / 对字符串进行完全匹配,必须完全符合

2.正则匹配

^-前缀级别,以什么为开头

~区分大小写的匹配

~*不区分大小写

!~:区分大小写的取反

!~*:不区分大小写的取反

3.一般匹配(通用匹配)

location /字符串

精确匹配的优先级最高,其次是正则,最后是一般。

优先级总结:

location = 完整路径 > location ^~ >location ~ location~* >location /部分起始位置 > location /

实际网站中的所有规则:

第一种:网站首页

location = / {root html;index index.heml index.htm index.php;
}

第二章:处理静态请求的页面

location ^~ /static/ {root /web/static/;index index.heml index.htm;
}

访问图片或者是指定的后缀名

location ~* \\.(jpg|gif|png|css) {root /web/pictures/;index index.heml index.htm;
}

第三章:一般是通用规则,原来转发.php .js为后缀的动态请求到后台服务器(数据库)。

转发后端请求和负载均衡

location / {

​ proxy_pass

}

rewrite重定向:

rewrite就是把当前访问的页面跳转到其他页面。

rewrite的工作方式:通过nginx的全局变量或者自定义变量,结合正则表达式和标志位实现url的重定向

nginx的变量

$uri 客户端请求的uri的地址

$host 请求的主机名

$http_user_angent 客户端请求的浏览器和操作系统

$http_referer 请求头的referer信息,表示当前页面来源的url

$remote_addr 客户端的IP地址

$remote_port 客户端的端口号

$server_addr 服务端的IP地址

$server_port 服务端的端口号

$request_method 获取客户端请求的方法

$scheme 显示请求的协议,要么是http要么是https

x_forwarded_for 用来获取请求头当中客户端的真实IP地址。代理服务器添加,在代理服务器当中指示客户端的IP地址

X-Real-IP:客户端真实的IP地址

vim nginx.conf

proxy_set_header X-Real-IP $remote_addr

加上这一字段,客户端的真实IP地址就会传递给后端服务器

标志位

flag

permanent:永久重定向,返回码是301,浏览器地址栏会显示跳转后的URL地址

redirect:临时重定向,返回码是302,浏览器地址栏会显示跳转后的URL地址

break:永久重定向,返回码也是301,但是它匹配到规则之后,不会在向下匹配其他规则,URL也不会发生变化

last:重定向,但是会继续向下匹配其他的location规则

rewrite的执行顺序:

1.server模块的rewrite优先级最高

2.匹配location的规则

3.执行选定的location规则

rewrite的语法:

rewrite 正则表达式 跳转后的内容 标志位;

在重定向的过程中,使用了last方式进行重定向,但是,没有结束语,陷入了死循环,nginx会自动循环10次,last最多只能循环10次,超过10次nginx就会自动结束,返回码500。

基于域名进行跳转,老的不用,但是依然能够访问,统统跳转到新的域名

在这里插入图片描述

vim /usr/local/nginx/conf/nginx.conf
server {listen 80;server_name www.xy102.com;charset utf-8;location / {root html;if ( $host = 'www.xy102.com'){rewrite ^/(.*)$ http://www.cj.com/$1 permanent;}index index.html;}
}
nginx -t 
systemctl restart nginx
#进入/etc/hosts做映射
vim /etc/hosts
192.168.233.10 www.xy102.com www.cj.com
#在index.html中添加内容
echo "" > /usr/local/nginx/html/index.html

基于客户端的ip进行跳转,公司新业务上线,测试阶段,

vim nginx.conf
set $rewrite true;
#设置应该变量名,rewrite,值是true
#来判断ip是否为合法ip
if ( $remote_addr = "192.168.233.10") {set $rewrite false;
}
if ( $rewrite = true ) {rewrite (.+) /error.html;#重定向,192.168.233.22/error.html
}
location = /error.html {root html;
}

在这里插入图片描述

location匹配的优先级

8.233.10") {
set $rewrite false;
}
if ( $rewrite = true ) {
rewrite (.+) /error.html;
#重定向,192.168.233.22/error.html
}
location = /error.html {
root html;
}

相关文章:

location匹配的优先级和重定向

nginx的重定向(rewrite) location 匹配 location匹配的就是后面的uri /wordpress 192.168.233.10/wordpress location匹配的分类和优先级 1.精确匹配 location / 对字符串进行完全匹配,必须完全符合 2.正则匹配 ^-前缀级别&#xff…...

观察矩阵(View Matrix)、投影矩阵(Projection Matrix)、视口矩阵(Window Matrix)及VPM矩阵及它们之间的关系

V表示摄像机的观察矩阵(View Matrix),它的作用是把对象从世界坐标系变换到摄像机坐标系。因此,对于世界坐标系下的坐标值worldCoord(x0, y0, z0),如果希望使用观察矩阵VM将其变换为摄像机坐标系下的坐标值localCoord(x…...

谷粒商城学习笔记-19-快速开发-逆向生成所有微服务基本CRUD代码

文章目录 一,使用逆向工程步骤梳理1,修改逆向工程的application.yml配置2,修改逆向工程的generator.properties配置3,以Debug模式启动逆向工程4,使用逆向工程生成代码5,整合生成的代码到对应的模块中 二&am…...

时序预测 | Matlab实现TCN-Transformer的时间序列预测

时序预测 | Matlab实现TCN-Transformer的时间序列预测 目录 时序预测 | Matlab实现TCN-Transformer的时间序列预测效果一览基本介绍程序设计 效果一览 基本介绍 基于TCN-Transformer模型的时间序列预测,可以用于做光伏发电功率预测,风速预测,…...

没想到MySQL 9.0这么拉胯

MySQL 7月1号发布了9.0版本,然而没想到并没有引起大家的狂欢,反而是来自DBA圈子的一篇吐槽,尤其是PG界吐槽更厉害。 难道MySQL现在真的这么拉胯了?本着好奇的态度,我也去下载了MySQL9.0的手册看了一下。确实有点让我大…...

开源 Wiki 系统 InfoSphere 2024.01.1 发布

推荐一套基于 SpringBoot 开发的简单、易用的开源权限管理平台,建议下载使用: https://github.com/devlive-community/authx 推荐一套为 Java 开发人员提供方便易用的 SDK 来与目前提供服务的的 Open AI 进行交互组件:https://github.com/devlive-commun…...

1.Introduction to Spring Web MVC framework

Web MVC framework 文档:22. Web MVC framework (spring.io) 概述 Web MVC框架(Web Model-View-Controller Framework)是一种用于构建Web应用程序的软件架构模式。MVC模式将应用程序分为三个主要组件:模型(Model&am…...

Onnx 1-深度学习-概述1

Onnx 1-深度学习-概述1 一: Onnx 概念1> Onnx 介绍2> Onnx 的作用3> Onnx 应用场景4> Onnx 文件格式1. Protobuf 特点2. onnx.proto3协议3> Onnx 模型基本操作二:Onnx API1> 算子详解2> Onnx 算子介绍三: Onnx 模型1> Onnx 函数功能1. np.random.rand…...

网络基础——udp协议

UDP协议(User Datagram Protocol,用户数据报协议)是OSI(Open System Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议,它提供了一种简单的、不可靠的数据传输服务。以下是关于…...

分布式锁理解

介绍分布式锁,我觉得从项目的背景入手把 在伙伴匹配系统中,我创建了一个定时任务,做为缓存预热的手段 这个具体原因在Redis-CSDN博客 接下来切入正题: 想象每个服务器都有一个定时任务,都要对数据库或者缓存进行操…...

Android Gradle 开发与应用 (十): Gradle 脚本最佳实践

目录 1. 使用Gradle Kotlin DSL 1.1 什么是Gradle Kotlin DSL 1.2 迁移到Kotlin DSL 1.3 优势分析 2. 优化依赖管理 2.1 使用依赖版本管理文件 2.2 使用依赖分组 3. 合理使用Gradle插件 3.1 官方插件和自定义插件 3.2 插件管理的最佳实践 4. 任务配置优化 4.1 使用…...

c#获取本机的MAC地址(附源码)

在前一次的项目中,突然用到了这个获取本机的MAC地址,然后就研究了一下,记录下来,防止以后再用到, 使用winfrom做的,界面一个button,一个textBox,点了button以后给textBox赋值显示mac地址 附上源…...

sqlmap使用之-post注入、head注入(ua、cookie、referer)

1、post注入 1.1、方法一,通过保存数据包文件进行注入 bp抓包获取post数据 将数据保存到post.txt文件 加上-r指定数据文件 1.2、方法二、通过URL注入 D:\Python3.8.6\SQLmap>python sqlmap.py -u "http://localhost/login.php" --data "userna…...

XSS: 原理 反射型实例[入门]

原理 服务器未对用户输入进行严格校验,使攻击者将恶意的js代码,拼接到前端代码中,从而实现恶意利用 XSS攻击危害 窃取用户Cookie和其他敏感信息,进行会话劫持或身份冒充后台增删改文章进行XSS钓鱼攻击利用XSS漏洞进行网页代码的…...

Idea新增Module报错:sdk ‘1.8‘ type ‘JavaSDK‘ is not registered in ProjectJdkTable

文章目录 一,创建Module报错二,原因分析三,解决方案1,点击上图的加号,把JDK8添加进来即可2,点击左侧[Project],直接设置SDK为JDK8 四,配置检查与验证 一,创建Module报错 …...

基于RHCE基础搭建简单服务

目录 项目标题与需求一 配置IP地址server机node02机 二 配置web服务三 搭建dns服务器四 开启防火墙server firewalld 五 配置nfs服务器node02 nfsserver autofs 六 开启SELinux七 验证是否能访问www.rhce.com 项目标题与需求 项目标题: 项目需求: 现有…...

威纶通触摸屏软件离线仿真时出现报错8000端口占用或服务器断线

现象 威纶通触摸屏软件离线仿真时出现报错 显示8000端口被占用 或者是设备服务器断线的状态 处理方法 系统参数——HMI属性 端口号更改一下即可 或者关闭占用8000端口的应用 分享创作不易,请多多支持,点赞、收藏、关注! Ending~...

CAS详解

文章目录 CAS使用示例Unsafe类实现原理CAS问题 CAS CAS全称为Compare and Swap被译为比较并交换,是一种无锁算法。用于实现并发编程中的原子操作。CAS操作检查某个变量是否与预期的值相同,如果相同则将其更新为新值。CAS操作是原子的,这意味…...

【笔记】虚拟机中的主从数据库连接实体数据库成功后的从数据库不同步问题解决方法2

错误: Last_Errno: 1008 Last_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction ANONYMOUS at source log mysql-bin.000014, end_log_pos 200275. See error lo…...

【每日一练】python类和对象现实举例详细讲解

""" 本节课程目的: 1.掌握类描述现实世界实物思想 2.掌握类和对象的关系 3.理解什么事面向对象 """ #比如设计一个闹钟,在这里就新建一个类 class Clock:idNone #闹钟的序列号,也就是类的属性priceNone #闹…...

时序分析核心概念与实战:从数据特征到数据库选型

1. 项目概述:为什么我们需要“时序分析”?如果你在金融、物联网、工业制造、运维监控或者电商数据分析等领域工作过,那么“时序数据”这个词对你来说一定不陌生。简单来说,时序数据就是一系列按时间顺序排列的数据点。听起来很简单…...

AI Agent Runtime 正在成为新基础设施层

1. 这不是新赛道,而是 runtime 层的“操作系统时刻”正在重演你打开手机看到新闻标题《Anthropic Just Shipped the Layer That’s Already Going to Zero》,第一反应可能是:又一个大模型公司搞出了什么黑科技?但如果你真花十分钟…...

数据鲸鱼具身智能task3

我的理解:模型广场提供了模型的雏形与底座,是一些已经85分的通用模型,各任务可以基于这里的模型去试验,根据试验的结果(这里就到了数据管理)发现数据的偏向或侧重点不同,根据这种数据的表现差异…...

瑞萨RZ系列核心板选型指南:从A55到RISC-V的嵌入式开发实战

1. 项目概述:当国产方案商遇上日系芯片巨头在嵌入式开发这个圈子里混久了,你会发现一个有趣的现象:很多项目在启动时,面临的第一个灵魂拷问往往不是“功能怎么实现”,而是“平台怎么选”。是追求极致的性能&#xff0c…...

Linux内核调试利器:/proc/sysrq-trigger原理与实战指南

1. 内核调试的“后门”:/proc/sysrq-trigger 深度解析在Linux内核开发和系统调试的深水区,当系统完全无响应、键盘鼠标失灵,甚至SSH连接都彻底中断时,常规的调试手段往往束手无策。这时,一个隐藏在/proc文件系统中的特…...

维萨报告:AI 加速诈骗成消费者新危害,企业需提速应对

AI 加速类 ClickFix 诈骗还记得 ClickFix 吗?这是近年来流行的一种社会工程技术,它通过利用心理弱点绕过传统的网络钓鱼防御。在 ClickFix 攻击中,受害者会被呈现一个看似容易解决的问题,从而诱使他们自己执行恶意操作。例如&…...

“--tile”失效了?深度逆向Midjourney纹理无缝拼接底层逻辑(含Python自动化Tile校验脚本)

更多请点击: https://codechina.net 第一章:Midjourney纹理无缝拼接的核心价值与失效现象洞察 在游戏开发、建筑可视化与数字孪生等高频复用表面材质的场景中,Midjourney生成的纹理若能实现像素级无缝拼接(tiling)&am…...

Belkin向范围3排放碳中和目标迈进

该公司发布的《2025年环境影响报告》重点介绍了其在减排、循环设计和负责任包装方面取得的持续进展 发布了《2025年环境影响报告》(2025 Impact Report),重点介绍了关键成就,并重申了其对企业社会责任的承诺。在2025年实现范围1和…...

【巴洛克AI生成合规白皮书】:基于梵蒂冈档案馆高清藏品训练的192个版权安全Prompt模板

更多请点击: https://codechina.net 第一章:巴洛克AI生成合规白皮书导论 巴洛克AI生成合规白皮书旨在为组织在部署和运营生成式人工智能系统时,提供一套可落地、可审计、可演进的合规治理框架。该白皮书聚焦于中国《生成式人工智能服务管理暂…...

SDR++软件无线电:3个关键步骤让你轻松探索无线电频谱世界

SDR软件无线电:3个关键步骤让你轻松探索无线电频谱世界 【免费下载链接】SDRPlusPlus Cross-Platform SDR Software 项目地址: https://gitcode.com/GitHub_Trending/sd/SDRPlusPlus 你是否曾经好奇过无线电波中隐藏着怎样的秘密?从FM广播到航空通…...