路由转发(也称为请求转发或反向代理)是一个核心功能,它允许将客户端的请求转发到后端服务器。Nginx 广泛用于处理高并发的请求,并能够有效地分配流量和管理负载。以下是关于 Nginx 路由转发的一些基本理论和概念。
反向代理
通常作为反向代理服务器工作,接收来自客户端的请求,然后将这些请求转发到一个或多个后端服务器。反向代理的主要优点包括:
- 负载均衡:可以将请求分发到不同的后端服务器,以平衡负载。
- 安全性:隐藏后端服务器的真实 IP 地址,提高安全性。
- 缓存:可以缓存响应结果,从而提高性能并减轻后端的压力。
- SSL 终止:可以在 Nginx 中处理 SSL/TLS 加密,减少后端服务器的负担
定义上游
{"nodes": [{"host": "resources.xxx.cn","port": 80,"weight": 1}],"timeout": {"connect": 6,"send": 6,"read": 6},"type": "roundrobin","scheme": "http", "pass_host": "node",#使用目标节点列表中的主机名或IP,如果pass_host为pass,表示与保持与客户端一致的主机名"name": "ad","keepalive_pool": {"idle_timeout": 60,"requests": 1000,"size": 320}
}
定义路由规则
- 下面规则是通用的,表示以/adc开头的URL,被替换为/green/red开头的URL
- 注意:一个转发规则,添加一个路由,如果多种转发策略,需要为一个服务(上游)添加多个路由,
regex_uri
最多只有两个元素,第1个是路径策略正则,第2个是转发模板
{"uri": "/adc/**","name": "ad","methods": ["GET","POST","PUT","DELETE","PATCH","HEAD","OPTIONS","CONNECT","TRACE","PURGE"],"plugins": {"proxy-rewrite": {"regex_uri": ["/adc/*","/green/red/$1"]}},"upstream_id": "544230536902607619","status": 1
}
添加apisix中添加路由转发
这种方法会反向关联到mse的路由列表中
- 在apisix的路由配置中,添加指定域名的转发策略,转发前缀与上面的
/adc
保持一致
- 当你在apisix的网络-路由中添加了对接的域名转发策略之后,在mse网关上,通过
路由
模块,也可以看到之前添加的转发策略
在MSE中添加路由转发
- 为你的目标服务在mse中添加服务,如apisix-gateway这个服务
- 在mse中添加路由,指定真实域名,转发策略,上游服务等,发布路由后可正常工作