我们正在使用 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)
真的是我需要的领域。你能引导我了解这应该如何实施吗?