nginx rewrite参数解析
在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、1、2、...、$99 | 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。 |
$& | 与 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参数,下期继续分享。
到此这篇关于nginx rewrite参数解析的文章就介绍到这了,更多相关nginx rewrite参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
服务器报错nginx 502 Bad Gateway的原因及如何解决详解
项目启动时莫名其妙网站访问不了,502 Bad Gateway,下面这篇文章主要给大家介绍了关于服务器报错nginx 502 Bad Gateway的原因及如何解决的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下2023-06-06详解Nginx反向代理实现会话(session)保持的两种方式
这篇文章主要介绍了详解Nginx反向代理实现会话(session)保持的两种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-08-08Nginx出现404 Not Found nginx/1.23.4的完美解决方案
在Nginx配置过程中,404 Not Found错误是一个常见问题,本文将详细解析Nginx 404 Not Found的原因及解决方案,确保您能够轻松解决这一问题,需要的小伙伴跟着小编一起来学习学习吧2024-07-07Centos7.3 安装部署Nginx并配置https的方法步骤
这篇文章主要介绍了Centos7.3 安装部署Nginx并配置https的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-04-04nginx环境下配置ssl加密(单双向认证、部分https)
这篇文章主要介绍了nginx环境下配置ssl加密(单双向认证、部分https),具有一定的参考价值,感兴趣的小伙伴们可以参考一下。2016-11-11
最新评论