一段时间以来,我和我的团队一直在使用客户端开发 API 服务器。我们想使用一个单独的服务器作为认证服务器。考虑下图。
+----------+
| |
| Client |
| |
+-^------+-+
| |
(6) (1)
| |
| |
+-+------v-+ +----------+
| +----(2)-----> |
| Proxy | | Auth |
| <----(3)-----+ |
+-^------+-+ +----------+
| |
(5) (4)
| |
| |
+-+------v-+
| |
| Apache |
| |
+----------+
现在我们已经将 Varnish Cache 设置为这个反向代理,它可以很好地解决一个非常重要的问题。为了实现上面的流程,我们必须在客户端轮询认证服务器以确认头部中提供的某些访问令牌的有效性之后重新启动清漆循环。这里的怪癖是,当发送 POST 请求(也需要进行身份验证)时,varnish 将在重启循环后省略 POST 请求正文。API 永远不会收到任何 POST 数据 ( https://www.varnish-cache.org/trac/ticket/652 )。这就是我们卡住的地方。
主要问题是:我们如何实现我们试图在图中完成的流程?理想情况下,我们继续使用 varnish 作为反向代理和缓存机制,但如果我们需要设置不同的反向代理并让 Varnish 只是代理和 API 之间的缓存服务器,我没有任何问题。非常感谢您的帮助!