前言
众所周知,Nginx 在 我们项目中扮演者举足轻重的地位,今天主要讲一下,Nginx rewrite 配置内部转发
概念理解
重定向
概念:简单明了,再发一次请求,就是你在浏览器访问一次,实际是两个请求,作用域不在同一个request上,看到两个请求
请求转发
概念:当你访问浏览器,是一个请求,仅仅依靠内部服务器来一次转发,作用域在同一个request上,看到一个请求
开胃菜
利用Nginx 和rewrite指令配置请求转发
访问:http://192.168.10.35:8080/api/item/queryUserInfo
效果:http://192.168.10.35:8080/queryUserInfo
要求:1.页面只能看到访问的路径
2. 实际访问的是效果路径
3. 后台未做全局baseContext 配置 没有 api/item, 无法模糊匹配
4. 所有的配置在前端
范例:
listen 80;
server_name localhost;
location / {
root html;
index index.html ;
}
location /api/item{
proxy_pass http://192.168.10.35:8080;
rewrite /api/item/(.+)$/$1 break;
}
友情提示: / > /+规则 nginx 执行顺序(越精确越先执行)
rewrite 使用拓展
语法:rewrite(关键字)+ 正则匹配+ 替换内容 +结束标志 (四位一体)
匹配规则:
符号 | 含义 |
---|
^ | 正则匹配的开始 |
$ | 正则匹配的结束 |
+ | 匹配前面字符串一次或者多次(至少一次) |
* | 匹配前面字符串零次或者多次(可以没有) |
. | 匹配所有字符除了“\n” |
? | 匹配零次或者一次(最多一次) |
\ | 将后面接着的字符标记为一个特殊字符或者一个原义字符或一个向后引用 |
() | 作为一个单独的个体(后面可以用$1 $2 $3 引用 1,2,3,代表括号所在的位置) |
结束flag
flag | 作用 |
---|
break | 匹配结束不在匹配新的规则 |
permanent | 返回301 永久重定向 |
redirect | 返回302临时重定向 |
last | 本条规则匹配完成后继续向下匹配新的location URI规则 |