nginx中的location匹配与重定向

location匹配有三种方法:完全匹配,正则匹配,通用匹配。

        精确匹配:location = / { ... }

        正则匹配:location - / { ... }

        一般匹配:location / { ... }

location通过uri来匹配资源。uri:统一资源标识符,是一种字符串标准,用于表示抽象的或者物理资源。

匹配规则:

        =:精确匹配

        ^~:匹配普通字符,但是是前缀匹配,

        ~:区分大小写的匹配

        ~*:不区分大小写的匹配

        !~:区分大小写的匹配,取反

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

匹配优先级:越精确优先级越高。

        locatio =  >  location ^-  >  location ~*  >  location /test/  >  location /

生产中location匹配规则:

        1,必选规则:location = / {} 直接匹配根网站。通过域名访问网站是最多的,使用精确匹配可以加快处理速度。

        2,location ^~ /staic/ {}   处理静态文件的请求,目录匹配。

        3,location ~* .(gif|jpg|png|css) 匹配图片用的.

        4,通用规则:location / {  proxy_pass  }  转发动态请求,反向代理,将php,.Jsp请求转发到后端。

rewrite:重写,重定向

        rewrite使用NGINX的全局变量或者是自己设置的变量媒介和正则表达式和标志位实现url的重定向。

x_forwarded_for:用于获取HTTP请求头中的X-Forwarded-For字段的值。

X-Forwarded-For是一个常见的HTTP请求头,通常由代理服务器添加,用于指示原始客户端的IP地址。

proxy_set_header X-Forwarded-For $remote_addr; 这个是传给后端。

X-Real-IP:头部为客户端真实IP地址

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header指令来设置X-Real-IP头部的值为$remote_addr,即客户端的真实IP地址。

这样,Nginx会将客户端的真实IP地址作为X-Real-IP头部的值传递给后端服务器。

        $remote_addr:客户端的IP地址。

        $remote_port:客户端的端口号。

        $server_addr:服务器的IP地址。

        $server_port:服务器的端口号。

        default_type text/plain;

表示如果没有在其他地方显示设置:content-type的头字段,默认响应为text/plain;纯文本格式。text/html:默认的响应类型,也就是我们说的页面。

text/plain:纯文本格式,类似于.txt文件

text/css: CSs样式表的类型,.css

text/javascript : java脚本,.js。前端文件,也可以理解是java解析的程序文件。|

Reweite使用NGINX的全局变量或者是自己设置的变量结合正则表达式和标志位实现url的重定向。

Rewrite执行顺序:

  1. 执行server块中的rewrite
  2. 执行location匹配
  3. 如果location当中还有rewrite,继续执行。
  4. 不停rewrite,会死循环,循环10次后报错500

Rewrite语法:

        Rewrite <regex> <replacemnet> [flag]

        Rewrite:开始重定向

        Regex:正则匹配的规则

        Replacemnet:表示跳转后的内容,你要重定向的url

        Flag:标志位。

标志位:last,break,permanent,redirect。

        last #表示完成rewrite,之后继续向下匹配新的location URI规则,浏览器地址栏URL地址不变。

        break #本条规则匹配完成后,终止匹配, 不再匹配后面的规则,完成重写指令,浏览器地址栏URL地址不变。

        redirect #返回302临时重定向,浏览器地址会显示跳转新的URL地址。

        permanent #返回301永久重定向,浏览器地址会显示跳转新的URL地址。

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

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

相关文章

FFmpeg常见命令行(三):FFmpeg转码

前言 在Android音视频开发中&#xff0c;网上知识点过于零碎&#xff0c;自学起来难度非常大&#xff0c;不过音视频大牛Jhuster提出了《Android 音视频从入门到提高 - 任务列表》。本文是Android音视频任务列表的其中一个&#xff0c; 对应的要学习的内容是&#xff1a;如何使…

七月学习总结

一晃暑期七月份已经结束了&#xff0c;八月份需要做的事情更多。 在成长的路上不断地迷茫&#xff0c;不断地前进。到底才能完成对自己地救赎。 目前想的就是以后走软件开发&#xff0c;往架构方向做&#xff0c;主语言Java或者go&#xff0c;408基础一定要扎实&#xff0c;计…

新型网络安全:从过程到明确结果

内容 过去的情况网络安全是理论性的&#xff0c;结果才是实际性的。这可能吗&#xff1f;我们现在的努力方向结论 本文讲述了为什么企业必须重新思考其网络安全方法&#xff1a;旧方法是否足够有效&#xff0c;是否可以完全适用&#xff1f;公司应采取哪些行动来实现内部信息…

【LeetCode】【数据结构】单链表OJ常见题型(二)

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言&#xff1a; 【LeetCode】面试题02.04. 分割链表 【Lee…

微信小程序申请步骤

微信公众平台链接&#xff1a;https://mp.weixin.qq.com/ 1、进到微信公众平台&#xff0c;点一下“点击注册”&#xff0c;挑选账号申请种类“小程序”&#xff0c;填好微信小程序用户信息&#xff0c;包含电子邮箱、登陆密码等。 2、微信公众平台会发送一封电子邮件&#xf…

Android WebView简单应用:构建内嵌网页浏览功能

在现代移动应用开发中&#xff0c;内嵌网页浏览功能是许多应用程序的常见需求。Android平台提供了WebView组件&#xff0c;它允许开发者将网页内容嵌入到应用中&#xff0c;并提供了丰富的功能和定制选项。本文将介绍如何在Android应用中使用WebView组件&#xff0c;帮助您快速…

Web3 solidity编写交易所合约 编写ETH和自定义代币存入逻辑 并带着大家手动测试

上文 Web3 叙述交易所授权置换概念 编写transferFrom与approve函数我们写完一个简单授权交易所的逻辑 但是并没有测试 其实也不是我不想 主要是 交易所也没实例化 现在也测试不了 我们先运行 ganache 启动一个虚拟的区块链环境 先发布 在终端执行 truffle migrate如果你跟着我…

# ⛳ Docker 安装、配置和详细使用教程-Win10专业版

目录 ⛳ Docker 安装、配置和详细使用教程-Win10专业版&#x1f69c; 一、win10 系统配置&#x1f3a8; 二、Docker下载和安装&#x1f3ed; 三、Docker配置&#x1f389; 四、Docker入门使用 ⛳ Docker 安装、配置和详细使用教程-Win10专业版 &#x1f69c; 一、win10 系统配…

ArcGIS Pro基础:【划分】工具实现等比例、等面积、等宽度划分图形操作

本次介绍【划分】工具的使用&#xff0c;如下所示&#xff0c;为该工具所处位置。使用该工具可以实现对某个图斑的等比例面积划分、相等面积划分和相等宽度划分。 【等比例面积】&#xff1a;其操作如下所示&#xff0c;其中&#xff1a; 1表示先选中待处理的图斑&#xff0c;2…

python的条件判断中的not、is、is not、is not None、is None

目录 1.not A 2.is和is not 3.is not None和is None 4.实例 1.not A 是判断A是否为0、False、空字符串、空列表、空字典、空元组以及None&#xff0c;满足任一条件即返回True 2.is和is not 是不是某种对象 3.is not None和is None None&#xff1a;在Python中是一个单…

【Linux进程篇】进程概念(2)

【Linux进程篇】进程概念&#xff08;2&#xff09; 目录 【Linux进程篇】进程概念&#xff08;2&#xff09;进程状态Linux对进程的说法linux中的信号 进程状态查看Z(zombie)——僵尸进程僵尸进程的危害 孤儿进程 进程优先级基本概念查看系统进程PRI &#xff08;优先级priori…

redis五大类型分析--list(1)

此篇为对redis五大数据类型中list的分析&#xff0c;希望能有所帮助 List API listTypePush函数 void listTypePush(robj *subject, robj *value, int where) {/* 检查编码类型是否为 quicklist (快速列表) */if (subject->encoding OBJ_ENCODING_QUICKLIST) {/* 根据参数…

vue3集成echarts最佳实践

安装 echarts npm install echarts --save 两种引用方式 非虚拟 dom import * as echarts from echarts;var chartDom document.getElementById(mychart); var myChart echarts.init(chartDom); var option;option {title: {text: Referer of a Website,subtext: Fake Da…

在java中操作redis_Data

1.引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 2.配置Redis数据源 redis:host: ${sky.redis.host}port: ${sky.redis.port}password: ${sk…

快速引流推广,快速引流推广策略分享,教你精准引流

科思创业汇 大家好&#xff0c;这里是科思创业汇&#xff0c;一个轻资产创业孵化平台。赚钱的方式有很多种&#xff0c;我希望在科思创业汇能够给你带来最快乐的那一种&#xff01; 在当今互联网的快速发展中&#xff0c;短视频脱颖而出&#xff0c;成为互联网的新秀&#xf…

用python做一个小游戏代码,用python制作一个小游戏

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;如何用python编写一个简单的小游戏&#xff0c;用python做一个小游戏代码&#xff0c;今天让我们一起来看看吧&#xff01; 今天呢&#xff0c;给大家展示一下Python有趣的小地方&#xff0c;展示给大家看看&#xff0c…

Ansible Playbook快速部署一主多从MySQL集群

部署目标&#xff1a; 1、快速部署一套一主两从的mysql集群 2、部署过程中支持交互式定义安装目录及监听端口号 部署清单目录结构&#xff1a; rootmaster:/opt/mysql# tree . . ├── group_vars │ └── all.yml ├── hosts ├── mysql.yml └── roles└── mys…

Client-go操作Deployment

在工作中需要对kubernetes进行自定义资源的开发&#xff0c;操作K8s的资源肯定是必不可少的。K8s原生语言是用Go编写的&#xff0c;所以在CRD中使用client-go来操作资源。本次介绍一下使用client-go来操作Deployment。 1. 创建main函数 func main() {homePath : homedir.Home…

php实现登录的例子

界面&#xff1a; 登录界面login.html代码&#xff1a; <!DOCUMENT html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"…

ARM微架构

一、流水线 二、指令流水线 指令流水线 指令流水线 指令流水线 ARM指令流水线 ARM7采用3级流水线 ARM9采用5级流水线 Cortex-A9采用8级流水线 注1&#xff1a;虽然流水线级数越来越多&#xff0c;但都是在三级流水线的基础上进行了细分 PC的作用&#xff08;取指&#xff09; …