背景
运营同学经常需要将运营系统上的url拷贝到virustotal去查询安全性,这个重复操作想优化下,提高效率。通过调研,发现virustotal是支持api查询的,就想在运营系统的前端集成这个查询功能,因此产生了跨域问题。
解决方案
Apisix的cros插件
这个插件是通过给后端接口响应头里增加支持跨域的响应头以支持跨域请求,不符合我们的场景,因为这个接口不是自己的,直接访问根本到不了网关。
Apisix的路由转发
通过配置一个运营系统的路由,转发到virustotal,这样前端就没有跨域问题了。
upstream的配置如下:
{
"type":"roundrobin",
"nodes": {
"www.virustotal.com": 1
},
"pass_host": "node"
}
-
必须配置pass_host,否则请求到virustotal的host不对
pass_host:请求发给上游时的 host 设置选型。 [
pass
,node
,rewrite
] 之一,默认是pass
。pass
: 将客户端的 host 透传给上游;node
: 使用upstream
node 中配置的 host;rewrite
: 使用配置项upstream_host
的值。