diff --git a/agent/app/service/website_proxy.go b/agent/app/service/website_proxy.go index 7ee6f6e25..0d79a5257 100644 --- a/agent/app/service/website_proxy.go +++ b/agent/app/service/website_proxy.go @@ -4,6 +4,10 @@ import ( "bytes" "errors" "fmt" + "path" + "strconv" + "strings" + "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/app/dto/request" "github.com/1Panel-dev/1Panel/agent/app/dto/response" @@ -17,9 +21,6 @@ import ( "github.com/1Panel-dev/1Panel/agent/utils/nginx/components" "github.com/1Panel-dev/1Panel/agent/utils/nginx/parser" "github.com/1Panel-dev/1Panel/agent/utils/re" - "path" - "strconv" - "strings" ) func (w WebsiteService) OperateProxy(req request.WebsiteProxyConfig) (err error) { @@ -119,8 +120,13 @@ func (w WebsiteService) OperateProxy(req request.WebsiteProxyConfig) (err error) location.RemoveServerCache(fmt.Sprintf("proxy_cache_zone_of_%s", website.Alias)) } // Browser Cache Settings - if req.CacheTime != 0 { + // cacheTime > 0: enable expires; + // cacheTime == 0: use upstream cache-control, remove self-set; + // cacheTime < 0: force no-cache + if req.CacheTime > 0 { location.AddBrowserCache(req.CacheTime, req.CacheUnit) + } else if req.CacheTime < 0 { + location.AddBroswerNoCache() } else { location.RemoveBrowserCache() } diff --git a/frontend/src/api/interface/website.ts b/frontend/src/api/interface/website.ts index ce6af12bf..23c399ef2 100644 --- a/frontend/src/api/interface/website.ts +++ b/frontend/src/api/interface/website.ts @@ -445,7 +445,7 @@ export namespace Website { allowHeaders: string; allowCredentials: boolean; preflight: boolean; - browserCache?: boolean; + browserCache?: 'enable' | 'disable' | 'noModify'; } export interface ProxReplace {