nginx的重定向(rewrite)

1、location 匹配

location匹配的就是后面的URL,对访问的路径做访问控制或者代理转发

共有三个匹配:精确匹配、正则匹配、一般配

a、精确匹配

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

c、正则匹配

^~:前缀匹配 以什么为开头,如果匹配成功,则不再匹配其它的正则匹配的location。

~:区分大小写的匹配

~*:不区分大小写

!~:区分大小写的区分

!~*:不匹配大小的取反

c、一般匹配(通用匹配)

location  /字符串

2、location 优先级以及原则

优先级:精确>正则>一般

优先级总结:

location= 最高,必须是完整路径

location= 1.jpg 每一位都需要一摸一样否则匹配不到

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

实际网站中的使用规则:

location= / {

root html;

index index.html index.htm index.php;

}

网站首页

第二个必选的规则:处理静态请求的页面

location^~ /static /{

root/web/sataic/

index index.html index.htm;

}

用来匹配静态页面

location ~* \.(jpg.gif|png|jpeg|css)$ {

root /web/pirturs/;

idnex index.html index.tml;

}

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

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

location / {

proxy_pass

}

转发后端请求和负载均衡

3、rewrite重定向

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

rewrite工作方式,通过nginx的全局变量或者是自定义变量,结合正则表达式和标志位实现url的重定向,对访问的域名或者域名内的URL路径地址重写。

4、rewrite 和 location区别

从功能看 rewrite 和 location都能实现跳转,主要区别在于 rewrite 是在同一域名内更改获取资源的路径,而 location 是对一类路径做控制访问或反向代理,还可以proxy_pass 到其他机器。

5、nginx的变量

$url 客户端另外的url地址

$host 请求的主机名

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

$http_referer:请求头的fefrr的信息模式当前页面来源的url

$remote_addr 客户端的IP地址

$remote_port 客户端的端口

$server_port 服务端的端口号

$server_addr 服务端的ip地址

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

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

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

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

6、标志位

flag:(四种)

permanen 永久重定向。返回码是301 浏览器地址会显示跳转后的url地址 (方便搜索引擎可以被搜索到)

redirect 临时重定向,返回码302 浏览器地址会显示跳转后url地址

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

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

7、rewrite的执行顺序

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

2、匹配location的规则

3、执行选定的location规则

8、rewrite的语法

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

在重定向的过程中使用last方式进行重定向,但是没有结束语,陷入了死循环,nginx会自动循环10次

last最多只能执行10次,超过10次没有结束就会停止,然后保存500

将结束语last改成break避免死循环

9、实验 基于域名进行跳转,老的不用了,但是依然可以访问,统统跳转到新的域名

宿主机 :192.168.10.20 域名www.xy102.com

  if ( $host = 'www.xy102.com' ){rewrite ^/(.*)$ http://www.zlm.com/$1 permanent;

 在/etc/hosts目录下进行本地映射

在虚拟机自带的浏览器对域名www.xy102.com进行访问,域名跳转到www.zlm.com只域名跳转,内容不变   

 10、实验:基于ip进行跳转,公司有新业务上线,测试阶段,其他的ip只能显示维护中,只有本机能正常访问

设置一个变量名,变量名rewrite值是true,接下来判断ip是否合法,true进行跳转,如果是false跳转到错误页面

   set $rewrite true;if ( $remote_addr = "192.168.10.20" ){set $rewrite false;
}if ( $rewrite = true ){rewrite (.+) /error.html;
}location = /error.html {root html;index index.html;
}

error.html的内容 

 

使用宿主机192.168.10.20对192.168.10.20进行访问  

 

使用192.168.10.30对192.168.10.20进行访问  

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

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

相关文章

Android 抓取 CPU 资源信息

在 Android 开发中,使用 ADB(Android Debug Bridge)命令获取 CPU 资源信息有很多重要的作用。这些命令可以帮助开发者在多种情况下分析和优化应用性能、解决问题以及进行系统性调试。 以下列举一些 ABD 获取 CPU 资源信息的命令 获取 CPU 核…

Docker镜像加速配置

由于当前运营商网络问题,可能会导致您拉取 Docker Hub 镜像变慢,索引可以配置阿里云镜像加速器。阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 每个人镜像地址都不一样,需要登陆阿里云自行查看,地址在上面&a…

SSM学生资助管理系统-计算机毕业设计源码30825

目 录 摘 要 1 绪论 1.1 研究背景 1.2研究意义 1.3论文结构与章节安排 2 学生资助管理系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分析 2.4 …

Conmi的正确答案——ESP32-C3开启安全下载模式

IDF版本:4.4.7 注意事项:一旦烧录“安全下载模式”,模组将无法被读取或清理,只能通过eclipse原项目烧录程序进行重新烧录,无法再烧录其他固件。 20240703110201——追加解法,暂时无法解安全下载模式 &…

拓展欧几里得和裴蜀定理

裴蜀定理(或贝祖定理)说明了对任何整数a、b和它们的最大公约数d,关于未知数x和y的线性不定方程(称为裴蜀等式):若a,b是整数,且gcd(a,b)d,那么对于任意的整数x,y,axby都一定是d的倍数&#xff0c…

SEO之快速网站诊断(二)

初创企业搭建网站的朋友看1号文章;想学习云计算,怎么入门看2号文章谢谢支持: 1、我给不会敲代码又想搭建网站的人建议 2、新手上云 (接上一篇。。。。) 4、外部链接 Google 的link:指令非常不准确,基本不…

【掌握C++ string 类】——【高效字符串操作】的【现代编程艺术】

专栏&#xff1a;C学习笔记 上一篇&#xff1a;【C】——【 STL简介】——【详细讲解】 1. 为什么要学习 string 类&#xff1f; 1.1 C 语言中的字符串 在 C 语言中&#xff0c;字符串是以 \0 结尾的字符集合。如下所示&#xff1a; #include <stdio.h>int main() {c…

Postman工具基本使用

一、安装及基本使用 安装及基本使用参见外网文档&#xff1a;全网最全的 postman 工具使用教程_postman使用-CSDN博客 建议版本&#xff1a;11以下&#xff0c;比如10.x.x版本。11版本以后貌似是必须登录使用 二、禁止更新 彻底禁止postman更新 - 简书 host增加&#xff1…

【Linux进阶】Linux目录配置,FHS

在了解了每个文件的相关种类与属性&#xff0c;以及了解了如何修改文件属性与权限的相关信息后&#xff0c;再来要了解的就是&#xff0c;为什么每个Linux发行版它们的配置文件、执行文件、每个目录内放置的东西&#xff0c;其实都差不多&#xff1f;原来是有一套标准依据&…

uniapp+vue3+echarts编写微信小程序

uniappvue3echarts编写微信小程序 记录一下自己uniapp使用echarts开发图表&#xff0c;之前网上找了很多&#xff0c;本以为应该是挺常见的使用方式&#xff0c;没想到引入之路居然这么坎坷&#xff0c;在Dcloud插件市场&#xff0c;使用最多的&#xff1a;echarts-for-wx 但是…

用Python制作动态钟表:实时显示时间的动画

文章目录 引言准备工作前置条件 代码实现与解析导入必要的库初始化Pygame绘制钟表函数主循环 完整代码 引言 动态钟表是一种直观且实用的UI元素&#xff0c;能够实时显示当前时间。在这篇博客中&#xff0c;我们将使用Python创建一个动态钟表&#xff0c;通过利用Pygame库来实…

React、JSX简介、渲染列表、基础和复杂的条件渲染

目录 一、简介 1、搭建环境 2、回到项目&#xff08;VScode&#xff09; 3、项目核心渲染路径 4、网站资料&#xff08;启动项目的方法&#xff09; 二、JSX 三、实现渲染列表 四、实现条件渲染 五、实现复杂条件渲染 一、简介 1、搭建环境 npx creat-react-app reac…

YUV 颜色编码详解

YUV 简介 YUV是被欧洲电视系统所采用的一种颜色编码方法&#xff08;属于PAL&#xff09;&#xff0c;是PAL和SECAM模拟彩色电视制式采用的颜色空间。在现代彩色电视系统中&#xff0c;通常采用三管彩色摄影机或彩色CCD摄影机进行取像&#xff0c;然后把取得的彩色图像信号经分…

【WEB前端】---HTML---结构---笔记

目录 1.标签---单标签和双标签 1.1单标签 1.2双标签 2.基本结构标签 2.1HTML标签 2.2文档头部标签 2.3文档标题标签 2.4文档的主题标签 3.常用的标题标签 (n∈[1,6]) 4.段落标签 5.换行标签 6.文本格式化标签 6.1粗体 6.2倾斜 6.3删除线 6.4下划线 7.div和spa…

服务器工具集合推荐

推荐一个朋友开源的服务器运维整合工具,目前的功能包括: ddns&#xff0c;rdp、ssh终端、ftp、http代理&#xff0c;支持在线文件编辑&#xff0c;文件管理&#xff0c;docker&#xff0c;进程&#xff0c;系统监控、wol唤醒&#xff0c;电脑远程开机&#xff0c;点对点&#…

深度分析和对比本地大语言模型Ollama和LocalAI

前言 在充满活力的人工智能&#xff08;AI&#xff09;世界中&#xff0c;开源工具已成为开发人员和组织利用LLM&#xff08;大型语言模型&#xff09;力量的重要资源。这些工具通过提供对高级LLM模型的访问权限&#xff0c;使各种用户能够构建创新和前沿的解决方案。在众多可…

AI工具大盘点!打工人必备的几款效率神器!

前言 在这个AI技术大放异彩的时代&#xff0c;找到合适的工具&#xff0c;可以让我们的工作效率翻倍。作为一名AI工具测评博主&#xff0c;我今天要向大家推荐几款我亲自体验并认为非常实用的AI工具。它们不仅能够提升你的工作效率&#xff0c;还能让你在职场上更加得心应手。…

为本地化准备营销材料的几个步骤

为本地化准备营销材料涉及几个关键步骤&#xff0c;以确保内容在文化上合适、语言上准确&#xff0c;并与目标受众相关。以下是五个基本步骤&#xff1a; 进行市场调查 了解目标市场至关重要。进行深入研究&#xff0c;以收集有关目标地区受众的文化细微差别、消费者行为、地…

【机器学习】机器学习与图像识别的融合应用与性能优化新探索

文章目录 引言第一章&#xff1a;机器学习在图像识别中的应用1.1 数据预处理1.1.1 数据清洗1.1.2 数据归一化1.1.3 数据增强 1.2 模型选择1.2.1 卷积神经网络1.2.2 迁移学习1.2.3 混合模型 1.3 模型训练1.3.1 梯度下降1.3.2 随机梯度下降1.3.3 Adam优化器 1.4 模型评估与性能优…

Element中的表格组件Table和分页组件Pagination

简述&#xff1a;在 Element UI 中&#xff0c;Table组件是一个功能强大的数据展示工具&#xff0c;用于呈现结构化的数据列表。它提供了丰富的特性&#xff0c;使得数据展示不仅美观而且高效。而Pagination组件是一个用于实现数据分页显示的强大工具。它允许用户在大量数据中导…