diff --git a/internal/web/actions/default/servers/groups/group/settings/httpReverseProxy/setting.go b/internal/web/actions/default/servers/groups/group/settings/httpReverseProxy/setting.go index 7c50088d..dd1ba5bd 100644 --- a/internal/web/actions/default/servers/groups/group/settings/httpReverseProxy/setting.go +++ b/internal/web/actions/default/servers/groups/group/settings/httpReverseProxy/setting.go @@ -111,6 +111,7 @@ func (this *SettingAction) RunPost(params struct { FollowRedirects: reverseProxyConfig.FollowRedirects, ProxyProtocolJSON: proxyProtocolJSON, Retry50X: reverseProxyConfig.Retry50X, + Retry40X: reverseProxyConfig.Retry40X, }) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/groups/group/settings/tcpReverseProxy/setting.go b/internal/web/actions/default/servers/groups/group/settings/tcpReverseProxy/setting.go index 94c619eb..65128b53 100644 --- a/internal/web/actions/default/servers/groups/group/settings/tcpReverseProxy/setting.go +++ b/internal/web/actions/default/servers/groups/group/settings/tcpReverseProxy/setting.go @@ -111,6 +111,7 @@ func (this *SettingAction) RunPost(params struct { FollowRedirects: reverseProxyConfig.FollowRedirects, ProxyProtocolJSON: proxyProtocolJSON, Retry50X: reverseProxyConfig.Retry50X, + Retry40X: reverseProxyConfig.Retry40X, }) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/server/settings/locations/reverseProxy/setting.go b/internal/web/actions/default/servers/server/settings/locations/reverseProxy/setting.go index 0427f2da..949c5691 100644 --- a/internal/web/actions/default/servers/server/settings/locations/reverseProxy/setting.go +++ b/internal/web/actions/default/servers/server/settings/locations/reverseProxy/setting.go @@ -102,6 +102,7 @@ func (this *SettingAction) RunPost(params struct { FollowRedirects: reverseProxyConfig.FollowRedirects, ProxyProtocolJSON: proxyProtocolJSON, Retry50X: reverseProxyConfig.Retry50X, + Retry40X: reverseProxyConfig.Retry40X, }) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/server/settings/reverseProxy/setting.go b/internal/web/actions/default/servers/server/settings/reverseProxy/setting.go index 9112ca1f..5981aa16 100644 --- a/internal/web/actions/default/servers/server/settings/reverseProxy/setting.go +++ b/internal/web/actions/default/servers/server/settings/reverseProxy/setting.go @@ -134,6 +134,7 @@ func (this *SettingAction) RunPost(params struct { FollowRedirects: reverseProxyConfig.FollowRedirects, RequestHostExcludingPort: reverseProxyConfig.RequestHostExcludingPort, Retry50X: reverseProxyConfig.Retry50X, + Retry40X: reverseProxyConfig.Retry40X, }) if err != nil { this.ErrorPage(err) diff --git a/web/public/js/components/server/reverse-proxy-box.js b/web/public/js/components/server/reverse-proxy-box.js index 2785c39b..7ae4e45a 100644 --- a/web/public/js/components/server/reverse-proxy-box.js +++ b/web/public/js/components/server/reverse-proxy-box.js @@ -26,7 +26,8 @@ Vue.component("reverse-proxy-box", { maxConns: 0, maxIdleConns: 0, followRedirects: false, - retry50X: true + retry50X: false, + retry40X: false } } if (reverseProxyConfig.addHeaders == null) { @@ -236,6 +237,38 @@ Vue.component("reverse-proxy-box", {

开启后将自动刷新缓冲区数据到客户端,在类似于SSE(server-sent events)等场景下很有用。

+ + 自动重试50X + + +

选中后,表示当源站返回状态码为50X(比如502、504等)时,自动重试其他源站。

+ + + + 自动重试40X + + +

选中后,表示当源站返回状态码为40X(403或404)时,自动重试其他源站。

+ + + + PROXY Protocol + + +

选中后表示启用PROXY Protocol,每次连接源站时都会在头部写入客户端地址信息。

+ + + + PROXY Protocol版本 + + +

发送类似于PROXY TCP4 192.168.1.1 192.168.1.10 32567 443的头部信息。

+

发送二进制格式的头部信息。

+ + 源站连接失败超时时间 @@ -300,31 +333,6 @@ Vue.component("reverse-proxy-box", {

源站保持等待的空闲超时时间,0表示使用默认时间。

- - 自动重试50X - - -

选中后,表示当源站返回状态码为50X(比如502、504)时,自动重试。

- - - - PROXY Protocol - - -

选中后表示启用PROXY Protocol,每次连接源站时都会在头部写入客户端地址信息。

- - - - PROXY Protocol版本 - - -

发送类似于PROXY TCP4 192.168.1.1 192.168.1.10 32567 443的头部信息。

-

发送二进制格式的头部信息。

- -