diff --git a/internal/nodes/http_request_cache.go b/internal/nodes/http_request_cache.go index d653921..b470ad0 100644 --- a/internal/nodes/http_request_cache.go +++ b/internal/nodes/http_request_cache.go @@ -18,6 +18,8 @@ import ( // 读取缓存 func (this *HTTPRequest) doCacheRead(useStale bool) (shouldStop bool) { + this.cacheCanTryStale = false + cachePolicy := this.Server.HTTPCachePolicy if cachePolicy == nil || !cachePolicy.IsOn { return @@ -167,7 +169,7 @@ func (this *HTTPRequest) doCacheRead(useStale bool) (shouldStop bool) { // cache相关变量 this.varMapping["cache.status"] = "MISS" - if this.web.Cache.Stale != nil && this.web.Cache.Stale.IsOn { + if !useStale && this.web.Cache.Stale != nil && this.web.Cache.Stale.IsOn { this.cacheCanTryStale = true } return diff --git a/internal/nodes/http_request_reverse_proxy.go b/internal/nodes/http_request_reverse_proxy.go index 687f358..2ffa85b 100644 --- a/internal/nodes/http_request_reverse_proxy.go +++ b/internal/nodes/http_request_reverse_proxy.go @@ -61,7 +61,7 @@ func (this *HTTPRequest) doReverseProxy() { if origin.Addr == nil { err := errors.New(this.requestFullURL() + ": origin '" + strconv.FormatInt(origin.Id, 10) + "' does not has a address") remotelogs.Error("HTTP_REQUEST_REVERSE_PROXY", err.Error()) - this.write50x(err, http.StatusBadGateway, false) + this.write50x(err, http.StatusBadGateway, true) return } this.RawReq.URL.Scheme = origin.Addr.Protocol.Primary().Scheme()