nginx rewrite参数 以及 $1、$2参数解析(附有生产配置实例)
在nginx的配置中,是否对rewrite的配置模糊不清,还有令人迷惑的
$1、$2...参数,(其实$1、$2参数在shell脚本中经常用到,用来承接传递的参数)。本篇从反向代理配置的角度帮助理解一下
1、先看一个nginx配置
rewrite ^/(user_\d)/(\d).html$ https://$host/?$1 permanent;
上面是我写的重写规则,先说$代表的是参数,所以一定是 () 包含的
(): 用于匹配括号之间的内容,通过$1、$2调用$1就是user_\d$2就是\d
举个例子
https://www.example.com/user_1/2.html
这里$1 就是 user_1
$2就是2
这实际上就是正则在nginx里面的运用, 下面看一下 正则 的规则,会帮助你理解
2、正则
2.1、replace
stringObject.replace(regexp/substr, replacement)
replacement 可以是字符串,也可以是函数。如果它是字符串,那么每个匹配都将由字符串替换。但是 replacement 中的 $ 字符具有特定的含义。如下表所示,它说明从模式匹配得到的字符串将用于替换。
| 字符 | 替换文本 |
|---|---|
| $1、$2、...、$99 | 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。 |
| $1、$2、...、$99 | |
| $& | 与 regexp 相匹配的子串。 |
| $` | 位于匹配子串左侧的文本。 |
| $' | 位于匹配子串右侧的文本。 |
| $$ | 直接量符号。 |
| 与 regexp 相匹配的子串。 |
| 替换文本 |
|---|
| 位于匹配子串左侧的文本。 |
| | 位于匹配子串右侧的文本。 |
| $$ | 直接量符号。
2.2、正则匹配重写例子
- 参数匹配,互换位置
name = "Tom, Jerry";
name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1");
'Jerry Tom'
- 参数获取
var str = '/pgk/api/pgk-abc'
var reg = /^\/pgk(.*)$/
str.replace(reg, "$1") // '/api/pgk-abc'
var str = '/pgk/api/pgk-abc/n/abc'
var reg = /^\/pgk\/api\/pgk-abc\/(.*)$/
str.replace(reg, "$1") // 'n/abc'
3、生产配置示例
下面是工作中的实际配置, 重写系统简称 ABC
location /ABC/api/pgk-abc/ {
rewrite ^/ABC/(.*)$ /$1 break;
proxy_pass http://ip:port;
# 这里重写掉 ABC , $1 就是 api/pgk-abc/
# 实际请求地址是: http://ip:port/api/pgk-abc/
proxy_http_version 1.1;
}
本篇完, rewrite 相关的还有 break、last、permanent、redirect参数,下期继续分享。
我是 甜点cc☭
微信公众号:【看见另一种可能】
热爱前端开发,也喜欢专研各种跟本职工作关系不大的技术,技术、产品兴趣广泛且浓厚。本号主要致力于分享个人经验总结,希望可以给一小部分人一些微小帮助。
希望能和大家一起努力营造一个良好的学习氛围,为了个人和家庭、为了我国的互联网物联网技术、数字化转型、数字经济发展做一点点贡献。数风流人物还看中国、看今朝、看你我。
nginx rewrite参数 以及 $1、$2参数解析(附有生产配置实例)的更多相关文章
- nginx+tomcat+二级域名静态文件分离支持mp4视频播放配置实例
nginx+tomcat+二级域名静态文件分离支持mp4视频播放配置实例 二级域名配置 在/etc/nginx/conf.d/目录下配置二级域名同名的conf文件,路径改成对应的即可 statics. ...
- nginx rewrite arg 带问号的地址转发参数处理?Nginx重定向的参数问题
Nginx重定向的参数问题 在给某网站写rewrite重定向规则时,碰到了这个关于重定向的参数处理问题.默认的情况下,Nginx在进行rewrite后都会自动添加上旧地址中的参数部分,而这对于重定向到 ...
- 【转】 nginx rewrite 伪静态配置参数详细说明
nginx rewrite 伪静态配置参数和使用例子 附正则使用说明 正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分 ...
- nginx自定义模块编写-根据post参数路由到不同服务器
nginx可以轻松实现根据不同的url 或者 get参数来转发到不同的服务器,然而当我们需要根据http包体来进行请求路由时,nginx默认的配置规则就捉襟见肘了,但是没关系,nginx提供了强大的自 ...
- Nginx:针对IPv4的内核参数优化
这里提及的参数是和IPv4网络有关的linux内核参数,我们可以将这些内核参数的值追加到linux系统的/etc/sysctl.conf文件中,然后使用如下命令使修改生效: [root@bogon ~ ...
- Atitit main函数的ast分析 数组参数调用的ast astview解析
Atitit main函数的ast分析 数组参数调用的ast astview解析 1.1. Xxcls.main(new String[]{"","bb"}) ...
- springmvc 项目完整示例06 日志–log4j 参数详细解析 log4j如何配置
Log4j由三个重要的组件构成: 日志信息的优先级 日志信息的输出目的地 日志信息的输出格式 日志信息的优先级从高到低有ERROR.WARN. INFO.DEBUG,分别用来指定这条日志信息的重要程度 ...
- iReport默认参数和变量的含义解析【转】
iReport默认参数和变量的含义解析[转] http://uule.iteye.com/blog/775338 参考:http://blog.csdn.net/terryzero/article/d ...
- Golang里实现Http服务器并解析header参数和表单参数
在http服务里,header参数和表单参数是经常使用到的,本文主要是练习在Go语言里,如何解析Http请求的header里的参数和表单参数,具体代码如下: package server import ...
- python-函数中的参数类型和可变参数解析
最近,在学习python,天天抱着廖雪峰的教材苦练,https://www.liaoxuefeng.com/ 但廖老毕竟是如此的才华盈溢,我这等小辈真是读起来教程都有些费力. 关于python-函数中 ...
随机推荐
- 跟羽夏学 Ghidra ——窗口
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正. 如有好的建议,欢迎反馈.码字不易,如果本篇文章 ...
- Linux配置系统yum源
首先是需要你把需要使用的镜像挂载到系统上面,可以通过cd /dvd添加也可以直接上传到系统上 本文档是上传到系统上进行挂载 操作系统:Red Hat 7.6 挂载镜像:Red Hat 7.6 1.挂载 ...
- CVE-2022-39197(CobaltStrike XSS <=4.7)漏洞复现
最新文章更新见个人博客 漏洞说明 根据9.20日CobaltStrike官方发布的最新4.7.1版本的更新日志中介绍,<=4.7的teamserver版本存在XSS漏洞,从而可以造成RCE远程代 ...
- Kubernetes 上部署应用-- 以Wordpress 为例
用一个 Wordpress 示例来尽可能将前面的知识点串联起来,我们需要达到的目的是让 Wordpress 应用具有高可用.滚动更新的过程中不能中断服务.数据要持久化不能丢失.当应用负载太高的时候能够 ...
- Minio服务限制/租户
官方文档地址:http://docs.minio.org.cn/docs/master/minio-server-limits-per-tenant 纠删码 (多块硬盘 / 服务) 浏览器访问 Lim ...
- Logstash: 如何创建可维护和可重用的Logstash管道
- MySQL 自增字段取值
1 前言 本文来自回答思否网友的一个问题,这个网友新建了一张表,auto_increment_increment设为10,AUTO_INCREMENT主键起始值设为9, 当他插入数据的时候,发现主键值 ...
- nsis新插件:Aero.dll
可以使安装界面在 win7 Aero特效下非客户区透明并美化BrandingText定义的字串 下载:http://nsis.sourceforge.net/Aero_plug-in nsis交流群: ...
- 改善C#程序的方法-1 操作字符串
正确操作字符串 引言: 字符串是使用很频繁的一种数据类型. 如果使用不慎,则会为一次字符串操作所带来的额外性能开销而付出代价. 下面从这几个方面来探讨如何正确操作字符串: 1.确保尽量少的装箱,尽可能 ...
- 移动端Vant组件库REM适配
REM适配 基础配置 在页面布局之前,对REM进行配置,以适配移动端特点. 官方参考 Vant文档---->快速上手---->进阶用法---->Rem适配----> Vant ...