我正在开发一个连接到外部后端服务(从另一家公司购买)的系统,该系统将大大超出每月的请求配额。我正在尝试创建一个代理/缓存,它将缓存请求并使用缓存的响应(如果存在)。
用例:
情况1:
情况2:
情况3:
要求:
到目前为止的想法:
到目前为止,我已经研究了两个不同的系统,Varnish(https://varnish-cache.org/)和Squid(http://www.squid-cache.org/)。我尝试过Squid,但我根本不了解如何设置配置以像上面那样工作。样本配置文件确实很凌乱,无法理解,我也找不到在线的任何指南。
我调查了Varnish,据我所知可能可以使用。但是我这里有一个问题。
问题:
在Varnish的
/etc/varnish/default.vcl
中,可以添加后端,因此我添加了以下内容:backend page2 {
.host = "url2.external-backend.com";
.port = "443";
}
这提供了类似的内容(我不记得了,现在也看不到错误消息):
Backend host "url2.external-backend.com": resolves to multiple IPv4 addresses.
Only one address is allowed.
Please specify which exact address you want to use, we found these:
xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx
我不敢用IP:s代替主机名,而且我不确定创建导演是正确的方法。原因是我无法控制主机名,并且他们不能保证IP地址不会更改。
问题:
最佳答案
我相信您正在寻找vmod-goto:https://docs.varnish-software.com/varnish-cache-plus/vmods/goto/
它不是开源的,但可以完全解决您的问题。
关于caching - Varnish :具有多个 IP 的后端(或使用其他东西),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55501208/