From 4ac2c1c43c5ffe5d96371aeaf02367769fc3034a Mon Sep 17 00:00:00 2001 From: wood chen Date: Tue, 15 Jul 2025 11:51:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BA=E5=9B=BE=E7=89=87=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20Vary=20=E5=A4=B4=E9=83=A8=E6=94=AF?= =?UTF-8?q?=E6=8C=81=EF=BC=8C=E4=BB=A5=E4=BE=BF=20CDN=20=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=20Accept=20=E5=A4=B4=E9=83=A8=E8=BF=9B=E8=A1=8C=E7=BC=93?= =?UTF-8?q?=E5=AD=98=EF=BC=8C=E4=BC=98=E5=8C=96=E5=93=8D=E5=BA=94=E5=A4=84?= =?UTF-8?q?=E7=90=86=E9=80=BB=E8=BE=91=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/handler/proxy.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/internal/handler/proxy.go b/internal/handler/proxy.go index 325426d..29f2420 100644 --- a/internal/handler/proxy.go +++ b/internal/handler/proxy.go @@ -431,6 +431,18 @@ func (h *ProxyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { w.Header().Set("Proxy-Go-AltTarget", "0") } + // 对于图片请求,添加 Vary 头部以支持 CDN 基于 Accept 头部的缓存 + if utils.IsImageRequest(r.URL.Path) { + // 添加 Vary: Accept 头部,让 CDN 知道响应会根据 Accept 头部变化 + if existingVary := w.Header().Get("Vary"); existingVary != "" { + if !strings.Contains(existingVary, "Accept") { + w.Header().Set("Vary", existingVary+", Accept") + } + } else { + w.Header().Set("Vary", "Accept") + } + } + // 设置响应状态码 w.WriteHeader(resp.StatusCode)