|NO.Z.00353|——————————|CloudNative|——|KuberNetes&运维.V69|——|IngressNginx.v05|前后端分离|
一、rewrite概述
### --- rewrite概述
~~~ # 官方地址:
~~~ https://kubernetes.github.io/ingress-nginx/examples/rewrite/

二、rewrite使用说明:
### --- 在这个入口定义中,捕获的任何字符(.*)都将分配给占位符$2,
~~~ 然后将其用作rewrite-target注释中的参数。
~~~ 注:也就是说,这个服务它没有这个路径,但是还是需要把这个路径代理到这个服务上,
~~~ 前后端分离
~~~ # 例如,上面的入口定义将导致以下重写:
rewrite.bar.com/something // 改写为 rewrite.bar.com/
rewrite.bar.com/something/ // 改写为 rewrite.bar.com/
rewrite.bar.com/something/new // 改写为 rewrite.bar.com/new
三、前后端分离
### --- 前后端分离
~~~ www.a.com / ————>前端服务 nginx
~~~ www.a.com / ————>后端服务 /api www.a.com/api——>后端, www.a.com/api——>api www.a.com
~~~ 根是到前端
~~~ 根下API是到后端
~~~ 但是后端的API是没有这个API路劲的
~~~ 就需要把/API转换成后端的/根
四、准备环境:
### --- 准备环境:
~~~ 使用redirect环境配置
~~~ 删除Ingress:annotations下的重定向百度和状态码:308
~~~ 更改域名为rewrite.test.com
五、访问rewrite.test.com:没有任何重定向

六、使用rewrite实现前后端分离
### --- 使用rewrite实现前后端分离
~~~ 若是访问http://rewrite.test.com/abc
~~~ 根地址为abc,没有abc根路径,我们需要访问ABC的根路径,配置策略

七、配置域名前后端分离Ingress配置:Addotations
### --- 创建配置文件ginx-ingress-redirec
[root@k8s-master01 rewrite]# vim nginx-ingress-redirect-demo.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
generation: 4
name: ingress-test
namespace: ratel-test1
spec:
rules:
- host: rewrite.test.com
http:
paths:
- backend:
serviceName: ingress-test
servicePort: 80
path: /something(/|$)(.*)
~~~ # 注:
nginx.ingress.kubernetes.io/rewrite-target: /$2 // 注:把something后面的参数取值转成/$2根下的值
path: /something(/|$)(.*) // 匹配根与变量结尾参数:(/|$)表示$1,(.*)表示$2
### --- 更新Ingress
[root@k8s-master01 rewrite]# kubectl replace -f nginx-ingress-redirect-demo.yaml
ingress.extensions/ingress-test replaced
八、访问http://rewrite.test.com/something
### --- 访问http://rewrite.test.com/something
~~~ something重定向到发布目录下,本身是没有这个目录的;
~~~ 实现前后端分离

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通