我正在为电子商务平台开发一个缓存系统,该系统将使用反向代理进行缓存。我计划通过使用正确的HTTP / 1.1标头来处理无效。也就是说,我将在第一代内容上设置一个ETag,并将该ETag值缓存在应用程序中。Cache-Control标头将指定“必须重新验证”,因此代理应在随后的带有ETag的请求上设置If-None-Match标头。应用程序将查找缓存的ETag值,如果匹配则将发送304响应,否则将生成完整的200响应。
我希望使用nginx,但我不能确定它是否支持ETags(文档表明它不支持ETags,但也许它们已经过时了?)。清漆是另一种选择,但我在这里也不满意。
哪些反向代理服务器完全支持ETag?我希望它实际上可以缓存多个版本,因此我可以执行拆分测试之类的事情而不必禁用缓存。也就是说,HTTP / 1.1指定客户端可以发送具有多个ETag值的If-None-Match,并且服务器应以匹配的ETag响应(如果有)。如果反向代理保留多个副本而不只是最后看到的值,并让服务器在每个要使用的请求上指定,那将是理想的。