利用 Apisix 网关解决跨域问题

2023-10-18 15:06:59 浏览数 (2)

背景

运营同学经常需要将运营系统上的url拷贝到virustotal去查询安全性,这个重复操作想优化下,提高效率。通过调研,发现virustotal是支持api查询的,就想在运营系统的前端集成这个查询功能,因此产生了跨域问题。

解决方案

Apisix的cros插件

这个插件是通过给后端接口响应头里增加支持跨域的响应头以支持跨域请求,不符合我们的场景,因为这个接口不是自己的,直接访问根本到不了网关。

Apisix的路由转发

通过配置一个运营系统的路由,转发到virustotal,这样前端就没有跨域问题了。

upstream的配置如下:

代码语言:javascript复制
    {
        "type":"roundrobin",
        "nodes": {
            "www.virustotal.com": 1
        },
        "pass_host": "node"
    }
  • 必须配置pass_host,否则请求到virustotal的host不对 pass_host:请求发给上游时的 host 设置选型。 [passnoderewrite] 之一,默认是passpass: 将客户端的 host 透传给上游; node: 使用 upstream node 中配置的 host; rewrite: 使用配置项 upstream_host 的值。

Post Views: 8

0 人点赞