apisix~转发到某个静态页

打印 上一主题 下一主题

主题 747|帖子 747|积分 2241

路由转发(也称为请求转发或反向代理)是一个核心功能,它允许将客户端的请求转发到后端服务器。Nginx 广泛用于处置惩罚高并发的请求,并能够有用地分配流量和管理负载。以下是关于 Nginx 路由转发的一些基本理论和概念。
反向代理

通常作为反向代理服务器工作,接收来自客户端的请求,然后将这些请求转发到一个或多个后端服务器。反向代理的主要优点包罗:

  • 负载均衡:可以将请求分发到不同的后端服务器,以平衡负载。
  • 安全性:埋伏后端服务器的真实 IP 地址,提高安全性。
  • 缓存:可以缓存相应结果,从而提高性能并减轻后端的压力。
  • SSL 终止:可以在 Nginx 中处置惩罚 SSL/TLS 加密,减少后端服务器的负担
定义上游

  1. {
  2.   "nodes": [
  3.     {
  4.       "host": "resources.xxx.cn",
  5.       "port": 80,
  6.       "weight": 1
  7.     }
  8.   ],
  9.   "timeout": {
  10.     "connect": 6,
  11.     "send": 6,
  12.     "read": 6
  13.   },
  14.   "type": "roundrobin",
  15.   "scheme": "http",
  16.   "pass_host": "node",
  17.   "name": "ad",
  18.   "keepalive_pool": {
  19.     "idle_timeout": 60,
  20.     "requests": 1000,
  21.     "size": 320
  22.   }
  23. }
复制代码
pass_host为node表示使用目的节点列表中的主机名或IP,如果pass_host为pass,表示与保持与客户端同等的主机名
pass_host

在 Apache APISIX 中,pass_host 是一个设置选项,用于控制如何处置惩罚请求的 Host 头部。这个选项在添加上游服务时非常重要,因为它会影响到请求转发到上游服务时的 Host 头部的值。pass_host 有两个可选值:node 和 pass。它们之间的区别及使用场景如下:
1. pass_host: node


  • 含义:当设置为 node 时,APISIX 会将请求的 Host 头部设置为上游节点的主机名或 IP 地址。这意味着上游服务接收到的请求将包含其自身的地址作为 Host。
  • 使用场景

    • 当后端服务需要知道实际请求是来自哪个客户端,并且希望根据不同的主机名举行处置惩罚时,可以使用 pass_host: node。
    • 实用于后端服务需要基于 Host 头部举行路由或处置惩罚的场景。比方,当使用多个域名指向同一后端服务,后端可能会根据 Host 头部来决定返回的内容或执行的逻辑。

2. pass_host: pass


  • 含义:当设置为 pass 时,APISIX 会将原始请求的 Host 头部直接传递给上游服务。这意味着上游服务将看到客户端请求的 Host 值,而不是上游节点的地址。
  • 使用场景

    • 当你希望上游服务能够识别并处置惩罚原始请求的 Host 时,可以使用 pass_host: pass。这对于某些应用程序来说非常重要,比方需要根据不同的域名返回不同内容的微服务架构。
    • 实用于需要保持请求上下文的场景,比如 API 网关将请求转发至多个后端服务,这些服务需要根据请求的 Host 来做进一步处置惩罚。

总结


  • pass_host: node:将 Host 设置为上游节点的地址,适合需要基于上游节点举行处置惩罚的场景,本例使用的是node。
  • pass_host: pass:保留原始请求的 Host,适合需要根据客户端请求的 Host 举行处置惩罚的场景。
定义路由规则


  • 下面规则是通用的,表示以/adc开头的URL,被更换为/green/red开头的URL
  • 注意:一个转发规则,添加一个路由,如果多种转发计谋,需要为一个服务(上游)添加多个路由,regex_uri最多只有两个元素,第1个是路径计谋正则,第2个是转发模板
  1. {
  2.   "uri": "/adc/index.html",
  3.   "name": "ad",
  4.   "methods": [
  5.     "GET",
  6.     "POST",
  7.     "PUT",
  8.     "DELETE",
  9.     "PATCH",
  10.     "HEAD",
  11.     "OPTIONS",
  12.     "CONNECT",
  13.     "TRACE",
  14.     "PURGE"
  15.   ],
  16.   "plugins": {
  17.     "proxy-rewrite": {
  18.       "uri": "/green/red/index.html" # 如果是正则转发,可以配置regex_uri数组
  19.     }
  20.   },
  21.   "upstream_id": "544230536902607619",
  22.   "status": 1
  23. }
复制代码
添加apisix中添加路由转发

这种方法会反向关联到mse的路由列表中


  • 在apisix的路由设置中,添加指定域名的转发计谋,转发前缀与上面的/adc保持同等


  • 当你在apisix的网络-路由中添加了对接的域名转发计谋之后,在mse网关上,通过路由 模块,也可以看到之前添加的转发计谋

在MSE中添加路由转发


  • 为你的目的服务在mse中添加服务,如apisix-gateway这个服务


  • 在mse中添加路由,指定真实域名,转发计谋,上游服务等,发布路由后可正常工作


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

立聪堂德州十三局店

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表