http - 使用代理缓存昂贵的传出 HTTP 请求?

标签 http caching nginx proxy varnish

我正在使用相当昂贵的外部 API(每个请求都需要付费),这使得使用它的测试代码变得不切实际。

在一个理想的世界中,我会有一个代理服务器来处理我的请求,它会无限期地缓存每个请求(基于 URL + 查询字符串),并且只有在我明确使给定的缓存无效时才会访问实际的 API 服务器要求。是否可以使用最低配置的现成服务器?

我当前的堆栈是 Node.js、Docker、Nginx、PostgreSQL 和 AWS S3(用于非临时状态)。我认为 Varnish 可以满足我的需求,但我不确定。

最佳答案

Varnish 可以而且将会做到这一点,但前提是您构建了一个“测试”API 来返回一些您可以使用的类似数据。如果必须省钱,最好的办法是多次查询 API 以获得不同的典型响应。一旦您大致了解了它的预期效果,就可以创建某种虚拟 API,甚至可以使用一些静态 JSON 或 XML 文件来模拟它。届时您可以测试 Varnish 和 Cache 失效,我非常乐意帮助您了解语法,给出一些代码示例。

关于http - 使用代理缓存昂贵的传出 HTTP 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37334498/

相关文章:

c# - 使用 C# 使用默认浏览器发送 HTTP Post

http - Nginx 将 HTTP 重写为 HTTPS 表示重定向循环?

http - 200 是表示请求成功启动还是成功完成?

ruby-on-rails - Rails 发送没有状态消息的 HTTP 状态代码

ssl - TLS 1.3 不适用于 Nginx 1.17.6/Ubuntu 18.04/OpenSSL 1.1.1

.net - ASP.NET 无法正确处理逗号分隔的 cookie

laravel-5 - Laravel 应用程序(AWS 服务器)中的严重缓存问题

c - 是否可以绕过多核处理器中的 L1 缓存

django - 了解 Django View 的基准测试

nginx - 在 nginx 中编辑 header 值