location rewrite
Nginx
location 匹配的规则和优先级
Nginx常用的变量
rewrite: 重定向功能
Location
匹配 URI
URI:统一资源的表示符,是一种字符串标识,用于标识抽象或者物理资源
先来巩固一些与location结合使用的正则表达式
正则表达式:匹配的是文件内容
元字符
. :任意单个字符,包括汉字
^:起始位置
$:结束位置
*:匹配前面的字符0次或者多次
+:匹配前面的字符一次或者多次
?:一次或0次
\:转义符
[0-9A-Za-z]:匹配0-9,A-Z,a-z.
[a]:只能匹配a.
{n}:连续重复出现几次
{n,m}:最少出现,最多出现几次
():分组
|:逻辑或
location匹配的规则
- = :精确匹配,完全匹配,错一个字都匹配到,必须完全一致。
- ^~: 匹配普通字符,前缀匹配
- ~$:结束位置
- ~ :区分大小写的匹配
- ~* :不区分大小写的匹配
- !~ :区分大小写的匹配,取的逻辑非 —— 取反
- !~* : 不区分大小写的取反
带有"~"的都表示正则表达式
location 用来匹配uri
- 精确匹配:location = / {...}
- 正则匹配:location ~ / {...}
- 一般匹配: location / {...}
location匹配规则官网
www.gsn.com/ 匹配的是A
www.gsn.com/test 匹配的是B
www.gsn.com/documengs/ 匹配的是C
www.gsn.com/images/ 匹配的是D
www.gsn.com/documents/1.jpg 匹配的是E
第一个规则
location = / {}
直接匹配根网站。通过域名访问网站首页是最多的。使用精确匹配,可以加快处理速度、首页。第二个规则
location ^~ /static/
处理静态文件的请求,目录匹配第三个规则
location ~* (gif / jpg / png / css)匹配图片用的
第四个规则——通用
location / {
proxy_pass 指定代理,反向代理,转发动态请求。.php .jsp的请求,发到后端
location /test/ {
proxy_pass 指定代理,反向代理,转发动态请求,将“.php”".jsp"发到后端服务器
}
匹配的优先级
越精确,优先级越高
= 精确匹配优先级最高
~ 正则次之
/ 通用的优先级最低
优先级:
location = > location ^~ > locatuin ~* > location /test/ > location /
一旦匹配到了之后,不再向下匹配
Nginx内置变量
$remote_addr:客户端的IP地址
$remote_port:客户端的端口号
$server_addr:服务器的IP地址。
$server_port:服务器的端口号。
$request_method:请求的HTTP方法,如GET、POST、等。
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头部的值传递给后端服务器。
查看客户端端口号;服务端IP地址
扩展
- $uri: 请求的URI,不包含主机和查询参数。
- $request_uri: 请求的URI,包含主机和查询参数。
- $args: 查询参数部分,即?后面的内容。
- $query_string: 整个查询字符串,包含?。
- $host: 请求的主机名。
- $http_user_agent: 请求的User-Agent头信息,用于表示请求客户端浏览器和操作系统。
- $http_referer: 请求的Referer头信息,表示当前页面的来源URL。
- $content_type: 请求的Content-Type头信息,表示请求体的MIME类型。
- $content_length: 请求的Content-Length头信息,表示请求体的长度。
- $scheme: 请求的协议,通常是http或https。
- $request_filename: 请求的文件名,用于指定请求的实际文件路径。
- $document_root: 当前请求的根目录。
- $server_name: 服务器名称,用于匹配server块的server_name指令。
rewrite 重定向 *面
rewrite使用NGINX的全局变量或者是自己设置的变量,结合正则表达式和标志位实现url的重定向。
rewrite执行顺序
- 执行server块当中的rewrite的
- 执行location匹配
- 如果location当中还有rewrite,继续执行
不停rewrite死循环,只能10次然后报错,报错的状态码:500
rewrite语法
rewrite <regex> <repTacemnet> [flag]
rewrite:开始重定向
regex:正则匹配的规则
replacemnet:表示跳转后的内容,你要重定向的url
flag:标志位
标志位
- permanent:永久重定向,返回码301;永久性的变更url,搜索引擎会转移他的权重以及排名到新的URL
- redirect:临时重定向,显示的返回码302;用于短期变更(网站维护,或升级更新);搜索引擎不会转移权重和排名到新的URL
- 304:表示获取的是本地缓存
- break:是重定向但不会改变url,而且只会请求一次;跳出当前匹配,即刻终止
- last:本条负责匹配完成后继续向下匹配,只要有last就继续匹配;配置的时候需要注意,防止死循环
扩展
以页面形式展示,却以文本格式下载如何解决?

日志中如下报错:
rewrite or internal redirection cycle while processing
#代表写成死循环一直在匹配location,10次之后返回码500
相关文章:
location rewrite
Nginx location 匹配的规则和优先级 Nginx常用的变量 rewrite: 重定向功能 Location 匹配 URI URI:统一资源的表示符,是一种字符串标识,用于标识抽象或者物理资源 先来巩固一些与location结合使用的正则表达式 正则表达式:匹…...
XLSX.utils.sheet_to_json()解析excel,给空的单元格赋值为空字符串
前言 今天用到XLSX来解析excel文件,调用XLSX.utils.sheet_to_json(worksheet),发现如果单元格为空的话,解析出来的结果,就会缺少相应的key(如图所示)。但是我想要单元格为空的话,值就默认给空字…...
安装Docker(Linux:CentOS)
大家好我是苏麟今安装一下Docker. 安装Docker Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。 Docker CE 分为 stab…...
2310月问题描述
apt包管理 修改apt目录,不存在apt.conf文件,但是存在apt.conf.d目录,如何修改apt的安装目录 apt-get 命令是 Ubuntu 系统中的包管理工具,可以用来安装、卸载包,也可以用来升级包,还可以用来把系统升级到新的版本。 语法格式&…...
y _hat[ [ 0, 1], y ]语法——pytorch张量花式索引
目录 1. y _hat[ [ 0, 1]例子 2.pytorch花式索引 (1)简单行、列索引 (2)列表索引 (3)范围索引 (4)布尔索引 (5)多维索引 3.张量拼接 (1…...
高级岗位面试问题
自我介绍 【我是谁】 、【我做过什么】、【我会什么】 面试官您好,我叫xxx,来自江西。20XX年毕业于XXXXX大学,已有X年软件测试工作经验,之前在XX家公司担任测试工程师 最近一家公司我主要负责了两个项目的测试,分别为XXXXX的编写,测试用例的设计,测试环境的搭建以及测…...
区块链游戏的开发框架
链游(Blockchain Games)是基于区块链技术构建的游戏。它们与传统游戏有一些显著不同之处,因此需要特定的开发框架和工具。以下是一些用于链游开发的开发框架及其特点,希望对大家有所帮助。北京木奇移动技术有限公司,专…...
Windows Nginx 服务器部署(保姆级)
大家好 我是寸铁 不知道怎么部署Windows Nginx 服务器看过来 手把手带你部署服务器 将你的本地网页部署到服务器上 话不多说,直接上操作!!! Windows Nginx服务器部署 进入下载地址: http://nginx.org/en/download.h…...
常用的Linux命令及其用法
常用的Linux命令及其用法 1. ls:列出文件和目录 ls命令用于列出当前目录中的文件和子目录。通过不同的选项,可以显示详细信息、隐藏文件等。 示例: ls -l ls -a2. cd:切换工作目录 cd命令用于切换当前工作目录。通过指定目标…...
linux总结
cat -n filename 查看文件,-n用来给每一行标行号,可以省略 cat /var/log/mysqld.log | grep password 我们可以通过上述指令,查询日志文件内容中包含password的行信息。 more 作用: 以分页的形式显示文件内容 语法: more fileName 操作说明: 回车键 …...
java - 设计模式 - 状态模式
文章目录 前言java - 设计模式 - 状态模式1. 概述2. 作用3. 示例 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。 而且听说点赞的人每天的运气都不会太差,实在白嫖的话…...
c/c++--编译指令(预处理之后) #pragma
1. #pragma 作用 #pragma 用于指示编译器完成一些特定的动作#pragma 的功能或作用 随编译器不同而变化。 即 不同的编译器可能以不同的方式解释同一条 #pragma 指令 2. 用法 常见用法示例 2.1 #pragma message 参考链接 自定义编译信息输出到终端(一般和#if配合使用&#…...
黑马JVM总结(三十二)
(1)类加载器-线程上下文1 使用的应用程序类加载器来完成类的加载,不是用的启动类加载器,jdk在某些情况下要打破,双亲委派的模式,有时候需要调用应用程序类加载器来完成类的加载,否则有些类它是找…...
接口自动化测试框架【reudom】
reudom Automated testing framework based on requests and unittest interface. 基于 Unittest 和 Requests 的 接口自动化测试框架 介绍 基于Unittest/Requests的接口自动化测试库 提供脚手架,快速生成接口自动化测试项目。 自动生成HTML测试报告。 支持用例参…...
【数据库问题】删除数据库失败,提示:there is 1 other session using the database
删除数据库失败,提示:there is 1 other session using the database 解决办法: SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datnametest_database AND pid<>pg_backend_pid(); 使用上述命令先关…...
【技术干货】如何快速创建商用照明 OEM APP?
本文介绍了如何在涂鸦 IoT 平台的 App 工作台上创建一款体验版商照 App、正式版 OEM App、上架 App、以及完成通用配置。 OEM App 开发 创建 App 登录 涂鸦 IoT 平台的 App 页面。 单击 创建APP,选择 商照 APP 进行创建。 在提示框里,完善 App 信息…...
阿里云ModelScope 是一个“模型即服务”(MaaS)平台
简介 项目地址:https://github.com/modelscope/modelscope/tree/master ModelScope 是一个“模型即服务”(MaaS)平台,旨在汇集来自AI社区的最先进的机器学习模型,并简化在实际应用中使用AI模型的流程。ModelScope库使开发人员能够通过丰富的…...
Nodejs内置模块process
文章目录 内置模块process写在前面1. arch()2. cwd()3. argv4. memoryUsage()5. exit()6. kill()7. env【最常用】 内置模块process 写在前面 process是Nodejs操作当前进程和控制当前进程的API,并且是挂载到globalThis下面的全局API。 下面是process的一些常用AP…...
Vue2 修改了数组哪些方法,为什么
1、Vue2 修改了以下数组方法 push()、pop()、shift()、unshift()、splice()、sort()、reverse() 这些方法都是可以改变原数组的。 为了实现数据响应式更新,Vue2 在这些方法中添加了特定的代码,以便通知 Vue 视图更新数据 举个例子,当我们…...
均值滤波算法及例程
均值滤波算法是一种简单的图像滤波方法,它使用一个固定大小的滤波器来平滑图像。该滤波器由一个矩形的窗口组成,窗口中的像素值取平均值作为中心像素的新值。以下是均值滤波算法的步骤: 定义滤波器的大小(窗口大小)&a…...
自学 Vibe Coding 这三个网站就够了!
背景 我之前想学 Vibe Coding,刷到各种"AI 编程神器"、"零基础用 AI 写代码"的文章,看得心潮澎湃。 结果一上手就懵了:装了插件、开了 AI、对着编辑器发呆,不知道下一步干嘛。 网上搜教程,要么…...
浏览器扩展实现AI提示词高效管理:从模板变量到工作流优化
1. 项目概述与核心价值最近在折腾AI工具链,发现一个痛点:每次和ChatGPT、Claude或者本地部署的大模型对话时,那些精心调试好的提示词(Prompt)总是散落在各个聊天窗口里,要么就是得手动复制粘贴,…...
从零理解无刷电机方波驱动:用STM32CubeMX配置TIM1 PWM与EXTI中断实现换相
STM32无刷电机方波驱动实战:CubeMX配置与六步换相详解 1. 无刷电机驱动基础认知 无刷直流电机(BLDC)凭借高效率、长寿命和低噪音特性,已成为工业自动化、消费电子和智能家居领域的核心动力元件。与传统有刷电机相比,BL…...
跨越平台鸿沟:Simulink、VeriStand与LabVIEW联合仿真环境一站式部署指南
1. 为什么需要联合仿真环境? 在工业自动化和科研领域,我们经常遇到一个尴尬的局面:不同团队使用的工具链完全不同。控制算法工程师习惯用Simulink建模,测试工程师依赖LabVIEW开发上位机,而硬件在环(HIL&am…...
如何在电脑上完美运行3DS游戏:Citra模拟器5步安装指南
如何在电脑上完美运行3DS游戏:Citra模拟器5步安装指南 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/GitHub_Trending/ci/citra 想要在电脑上重温任天堂3DS的经典游戏吗?Citra模拟器作为目前最优秀的开源3DS模拟…...
ISG系统三大电机结构深度解析:永磁同步、感应与开关磁阻电机对比
1. 项目概述:从“电机”到“ISG系统”的深度关联在混合动力与新能源车领域,ISG(Integrated Starter Generator,集成式启动发电一体机)系统是一个核心的动力单元。它不像传统汽车那样,启动电机和发电机是分开…...
为什么Delorean是Python时间处理的最佳选择?
为什么Delorean是Python时间处理的最佳选择? 【免费下载链接】delorean Delorean: Time Travel Made Easy 项目地址: https://gitcode.com/gh_mirrors/de/delorean 在Python开发中,时间处理常常是一个令人头疼的问题,尤其是涉及到时区…...
BLE AT指令实战:从GAP广播到GATT服务构建的嵌入式蓝牙开发指南
1. 项目概述与BLE AT指令核心价值如果你正在捣鼓物联网设备、可穿戴硬件或者任何需要无线连接的嵌入式项目,蓝牙低功耗(BLE)技术大概率是你绕不开的一环。它功耗低、连接快,非常适合那些需要长时间运行、间歇性传输少量数据的场景…...
边缘节点就地智能处理方案
边缘节点就地智能处理方案 第1章项目概述 1.1项目背景 随着数字中国建设迈入深度落地与规模化赋能的全新阶段,2026年作为国家数据要素价值释放关键年、算力网络规模化落地之年以及“十五五”规划开局之年,全国各行业数字化、数智化转型正式从信息化补短板阶段迈入提质增效、深…...
学校AIGC检测标准差异解读:不同高校AI率标准对比2026年如何针对性免费处理完整指南
学校AIGC检测标准差异解读:不同高校AI率标准对比2026年如何针对性免费处理完整指南 同一段文字,不同平台检测AI率相差20%以上。这不是玄学,有原因可解释。 关于高校AIGC检测标准差异解读,理解了背后逻辑,很多「奇怪现…...



