我们正在使用 Fastly 及其 Varnish 从我们的服务中传递内容。为了在多个服务之间分发内容,我们使用以下代码段:
sub vcl_recv {
#FASTLY recv
if (req.url.path ~ "^/services/") {
set req.url = regsub(req.url, "/services/(.*?)/", "/");
}
}
这有效并允许我们交付/services/user/get到服务的/get端点user。
然而,使用这个 Snippet 可以让 Fastly 完全跳过gzip压缩。这可以通过使用来解决return(lookup):
sub vcl_recv {
#FASTLY recv
if (req.url.path ~ "^/services/") {
set req.url = regsub(req.url, "/services/(.*?)/", "/");
}
return (lookup);
}
此时gzip压缩正在工作。不幸的是,这使得所有POST, PATCH,DELETE请求都以GET.
我尝试研究 Varnish 文档,但不确定是否(lookup)真的是我需要的领域。你能引导我了解这应该如何实施吗?