diff --git a/infra/conf/transport_internet.go b/infra/conf/transport_internet.go index 3feb7347..22e749d7 100644 --- a/infra/conf/transport_internet.go +++ b/infra/conf/transport_internet.go @@ -181,10 +181,10 @@ func (c *WebSocketConfig) Build() (proto.Message, error) { } type HttpUpgradeConfig struct { - Path string `json:"path"` - Host string `json:"host"` + Path string `json:"path"` + Host string `json:"host"` Headers map[string]string `json:"headers"` - AcceptProxyProtocol bool `json:"acceptProxyProtocol"` + AcceptProxyProtocol bool `json:"acceptProxyProtocol"` } // Build implements Buildable. @@ -200,6 +200,14 @@ func (c *HttpUpgradeConfig) Build() (proto.Message, error) { path = u.String() } } + // If http host is not set in the Host field, but in headers field, we add it to Host Field here. + // If we don't do that, http host will be overwritten as address. + // Host priority: Host field > headers field > address. + if c.Host == "" && c.Headers["host"] != "" { + c.Host = c.Headers["host"] + } else if c.Host == "" && c.Headers["Host"] != "" { + c.Host = c.Headers["Host"] + } config := &httpupgrade.Config{ Path: path, Host: c.Host,