mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-12-03 23:11:54 +08:00
源站没有地址时也尝试Stale Cache/避免write50x()方法进入死循环
This commit is contained in:
@@ -18,6 +18,8 @@ import (
|
|||||||
|
|
||||||
// 读取缓存
|
// 读取缓存
|
||||||
func (this *HTTPRequest) doCacheRead(useStale bool) (shouldStop bool) {
|
func (this *HTTPRequest) doCacheRead(useStale bool) (shouldStop bool) {
|
||||||
|
this.cacheCanTryStale = false
|
||||||
|
|
||||||
cachePolicy := this.Server.HTTPCachePolicy
|
cachePolicy := this.Server.HTTPCachePolicy
|
||||||
if cachePolicy == nil || !cachePolicy.IsOn {
|
if cachePolicy == nil || !cachePolicy.IsOn {
|
||||||
return
|
return
|
||||||
@@ -167,7 +169,7 @@ func (this *HTTPRequest) doCacheRead(useStale bool) (shouldStop bool) {
|
|||||||
// cache相关变量
|
// cache相关变量
|
||||||
this.varMapping["cache.status"] = "MISS"
|
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
|
this.cacheCanTryStale = true
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ func (this *HTTPRequest) doReverseProxy() {
|
|||||||
if origin.Addr == nil {
|
if origin.Addr == nil {
|
||||||
err := errors.New(this.requestFullURL() + ": origin '" + strconv.FormatInt(origin.Id, 10) + "' does not has a address")
|
err := errors.New(this.requestFullURL() + ": origin '" + strconv.FormatInt(origin.Id, 10) + "' does not has a address")
|
||||||
remotelogs.Error("HTTP_REQUEST_REVERSE_PROXY", err.Error())
|
remotelogs.Error("HTTP_REQUEST_REVERSE_PROXY", err.Error())
|
||||||
this.write50x(err, http.StatusBadGateway, false)
|
this.write50x(err, http.StatusBadGateway, true)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.RawReq.URL.Scheme = origin.Addr.Protocol.Primary().Scheme()
|
this.RawReq.URL.Scheme = origin.Addr.Protocol.Primary().Scheme()
|
||||||
|
|||||||
Reference in New Issue
Block a user