diff --git a/README.md b/README.md index 758cc81..9330af2 100644 --- a/README.md +++ b/README.md @@ -132,8 +132,8 @@ server { } ``` -The parameter 'http-proxy-redir-url' in rttys.conf can also be configured -by setting a new HTTP header 'HttpProxyRedir' in nginx. +The parameter 'http-proxy-redir-url' and 'http-proxy-redir-domain' in rttys.conf can also be configured +by setting new HTTP headers in nginx. ``` server { @@ -150,6 +150,7 @@ server { location /web/ { proxy_set_header HttpProxyRedir http://web.your-server.com; + proxy_set_header HttpProxyRedirDomain .your-server.com proxy_pass http://127.0.0.1:5913; } diff --git a/README_ZH.md b/README_ZH.md index 402dc5b..7c243fe 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -130,8 +130,8 @@ server { } ``` -在 rttys.conf 中的参数 http-proxy-redir-url 也可以通过在 nginx 中设置一个新 -的 HTTP header HttpProxyRedir 来配置. +在 rttys.conf 中的参数 http-proxy-redir-url 和 http-proxy-redir-domain 也可以通过在 nginx 中设置新 +的 HTTP headers 来配置. ``` server { @@ -148,6 +148,7 @@ server { location /web/ { proxy_set_header HttpProxyRedir http://web.your-server.com; + proxy_set_header HttpProxyRedirDomain .your-server.com proxy_pass http://127.0.0.1:5913; } diff --git a/http.go b/http.go index 6bd81cf..4ef81c8 100644 --- a/http.go +++ b/http.go @@ -368,9 +368,15 @@ func httpProxyRedirect(br *broker, c *gin.Context) { httpProxySessions.Store(sid, make(chan struct{})) - domain := cfg.HttpProxyRedirDomain - - log.Debug().Msgf("set cookie domain: %s", domain) + domain := c.Request.Header.Get("HttpProxyRedirDomain") + if domain == "" { + domain = cfg.HttpProxyRedirDomain + if domain != "" { + log.Debug().Msgf("set cookie domain from config: %s", domain) + } + } else { + log.Debug().Msgf("set cookie domain from HTTP header: %s", domain) + } c.SetCookie("rtty-http-sid", sid, 0, "", domain, false, true) c.SetCookie("rtty-http-devid", devid, 0, "", domain, false, true)