nginx 匹配规则小总结(推荐)
作者:klvchen
这篇文章主要介绍了nginx 匹配规则小总结及nginx配置proxy_pass路径带/问题,需要的朋友可以参考下
nginx location
等号类型(=)的优先级最高,需要精确匹配。一旦匹配成功,则不再查找其他匹配项。
^~类型表达式。一旦匹配成功,则不再查找其他匹配项。
正则表达式类型(~ ~*)的优先级次之。如果有多个location的正则能匹配的话,则使用正则表达式最长的那个。
(location =) > (location 完整路径) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 部分起始路径) > (/)
nginx 配置 proxy_pass 路径带 / 的问题
用户访问的 url 为 http://klvchen.com/abc/test.html
eg:
#情况1: proxy_pass 后带 / location /abc/ { proxy_pass http://klvchen.com/; } #会被代理成 http://klvchen.com/test.html #情况2: proxy_pass 后不带 / location /abc/ { proxy_pass http://klvchen.com; } #会被代理成 http://klvchen.com/abc/test.html
常用正则
.: 匹配除换行符以外的任意字符
?: 重复0次或1次
+: 重复1次或更多次
*: 重复0次或更多次
\d:匹配数字
^: 匹配字符串的开始
$: 匹配字符串的结束
{n}: 重复n次
{n,}: 重复n次或更多次
[c]: 匹配单个字符c
[a-z]: 匹配a-z小写字母的任意一个
小括号()之间匹配的内容,可以在后面通过$1来引用,$2表示的是前面第二个()里的内容。正则里面容易让人困惑的是\转义特殊字符。
总结
以上所述是小编给大家介绍的nginx 匹配规则小总结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!