diff --git a/src/reverseproxy.go b/src/reverseproxy.go index a978d65..86d5dc5 100644 --- a/src/reverseproxy.go +++ b/src/reverseproxy.go @@ -238,6 +238,13 @@ func ReverseProxyHandleAddEndpoint(w http.ResponseWriter, r *http.Request) { bypassGlobalTLS, _ := utils.PostPara(r, "bypassGlobalTLS") if bypassGlobalTLS == "" { bypassGlobalTLS = "false" + + } + + // Enable uptime monitor? + enableUtm, err := utils.PostBool(r, "enableUtm") + if err != nil { + enableUtm = true } useBypassGlobalTLS := bypassGlobalTLS == "true" @@ -410,7 +417,8 @@ func ReverseProxyHandleAddEndpoint(w http.ResponseWriter, r *http.Request) { RequireRateLimit: requireRateLimit, RateLimit: int64(proxyRateLimit), - Tags: tags, + Tags: tags, + DisableUptimeMonitor: !enableUtm, } preparedEndpoint, err := dynamicProxyRouter.PrepareProxyRoute(&thisProxyEndpoint) diff --git a/src/web/components/rules.html b/src/web/components/rules.html index 642798f..5a60d14 100644 --- a/src/web/components/rules.html +++ b/src/web/components/rules.html @@ -62,6 +62,13 @@ + +
+
+ + +
@@ -168,22 +175,78 @@
- Domain
- Example of domain matching keyword:
- aroz.org
Any acess requesting aroz.org will be proxy to the IP address below
-
- Subdomain
- Example of subdomain matching keyword:
- s1.aroz.org
Any request starting with s1.aroz.org will be proxy to the IP address below
-
- Wildcard
- Example of wildcard matching keyword:
- *.aroz.org
Any request with a host name matching *.aroz.org will be proxy to the IP address below. Here are some examples.
-
-
www.aroz.org
-
foo.bar.aroz.org
+
+
+ + Matching Keyword Examples +
+
+ Domain
+ Example of domain matching keyword:
+ aroz.org
Any acess requesting aroz.org will be proxy to the IP address below
+
+ Subdomain
+ Example of subdomain matching keyword:
+ s1.aroz.org
Any request starting with s1.aroz.org will be proxy to the IP address below
+
+ Wildcard
+ Example of wildcard matching keyword:
+ *.aroz.org
Any request with a host name matching *.aroz.org will be proxy to the IP address below. Here are some examples.
+
+
www.aroz.org
+
foo.bar.aroz.org
+
+
+
+ +
+ + Remote Target Require TLS +
+
+ Upstream TLS Requirement
+

+ When you enable Proxy Target require TLS Connection, it means the upstream server (the target you are proxying to) requires a secure (HTTPS) connection.
+ This does not affect whether clients connect to this proxy endpoint using HTTP or HTTPS. +

+
+ Example
+ Matching Keyword: mydomain.com
+ Target: example.com:443 (TLS enabled)

+
    +
  • Client connects to mydomain.com (HTTP or HTTPS, depending on your proxy setup)
  • +
  • Proxy forwards requests to example.com:443 using HTTPS
  • +
+ + Use this option if your upstream server only accepts secure connections.
+ If your upstream uses a self-signed certificate, check the Ignore TLS/SSL Verification Error option in Advance Settings. +
+
+ +
+ + What is Sticky Session? +
+
+ Sticky Session (Session Affinity)
+

+ Sticky session ensures that requests from the same client are always forwarded to the same upstream server. This is useful for applications that store session data locally and require the client to consistently connect to the same backend.
+

+
+ How to Add Multiple Upstreams
+
    +
  • Go to HTTP Proxy in the sidebar.
  • +
  • Click Edit on your proxy rule.
  • +
  • Use the Upstreams section to add more upstream endpoints for load balancing.
  • +
+ + Sticky session will only work if you have more than one upstream endpoint configured. + +
-
+
@@ -204,6 +267,7 @@ let accessRuleToUse = $("#newProxyRuleAccessFilter").val(); let useStickySessionLB = $("#useStickySessionLB")[0].checked; let tags = $("#proxyTags").val().trim(); + let enableUtm = $("#enableUtm")[0].checked; if (rootname.trim() == ""){ $("#rootname").parent().addClass("error"); @@ -238,6 +302,7 @@ access: accessRuleToUse, stickysess: useStickySessionLB, tags: tags, + enableUtm: enableUtm, }, success: function(data){ if (data.error != undefined){