Fix sni proxying for https with proxy-protocol enabled

This commit is contained in:
Antonio Mika
2022-05-24 00:21:22 +00:00
committed by GitHub
parent 047ba6378b
commit 8eb708ae96
+13 -15
View File
@@ -305,8 +305,6 @@ func Start(state *utils.State) {
}
go func() {
var httpsListener net.Listener
// We'll replace this with a custom listener
// That listener will then check the hostname of the request and choose the connection to send it to
portListener, err := net.Listen("tcp", httpsServer.Addr)
@@ -316,6 +314,17 @@ func Start(state *utils.State) {
pListener := portListener
if viper.GetBool("proxy-protocol-listener") {
hListener := &proxyproto.Listener{
Listener: portListener,
}
utils.LoadProxyProtoConfig(hListener)
pListener = hListener
}
httpsListener := pListener
var tH *utils.TCPHolder
if viper.GetBool("sni-proxy-https") {
@@ -342,24 +351,13 @@ func Start(state *utils.State) {
tH.Balancers.Store("", balancer)
pListener = &proxyListener{
Listener: portListener,
httpsListener = &proxyListener{
Listener: pListener,
Holder: tH,
State: state,
}
}
if viper.GetBool("proxy-protocol-listener") {
hListener := &proxyproto.Listener{
Listener: pListener,
}
utils.LoadProxyProtoConfig(hListener)
httpsListener = hListener
} else {
httpsListener = pListener
}
if tH != nil {
tH.Listener = httpsListener