in proxy/protocol/http/http_server.go [88:134]
func (hs *httpServer) startSidecar(host, port string) error {
mesherTLSConfig, mesherSSLConfig, mesherErr := chassisTLS.GetTLSConfigByService(
common.ComponentName, "", chassisCom.Provider)
if mesherErr != nil {
if !chassisTLS.IsSSLConfigNotExist(mesherErr) {
return mesherErr
}
} else {
sslTag := genTag(common.ComponentName, chassisCom.Provider)
openlog.Warn(fmt.Sprintf("%s TLS mode, verify peer: %t, cipher plugin: %s.",
sslTag, mesherSSLConfig.VerifyPeer, mesherSSLConfig.CipherPlugin))
}
err := hs.listenAndServe("127.0.0.1"+":"+port, mesherTLSConfig, http.HandlerFunc(LocalRequestHandler))
if err != nil {
return err
}
resolver.SelfEndpoint = "127.0.0.1" + ":" + port
switch host {
case "0.0.0.0":
return errors.New("in sidecar mode, forbidden to listen on 0.0.0.0")
case "127.0.0.1":
openlog.Warn("Mesher listen on 127.0.0.1, it can only proxy for consumer. " +
"for provider, mesher must listen on external ip.")
return nil
default:
serverTLSConfig, serverSSLConfig, serverErr := chassisTLS.GetTLSConfigByService(
chassisRuntime.ServiceName, chassisCom.ProtocolRest, chassisCom.Provider)
if serverErr != nil {
if !chassisTLS.IsSSLConfigNotExist(serverErr) {
return serverErr
}
} else {
sslTag := genTag(chassisRuntime.ServiceName, chassisCom.ProtocolRest, chassisCom.Provider)
openlog.Warn(fmt.Sprintf("%s TLS mode, verify peer: %t, cipher plugin: %s.",
sslTag, serverSSLConfig.VerifyPeer, serverSSLConfig.CipherPlugin))
}
err = hs.listenAndServe(hs.opts.Address, serverTLSConfig, http.HandlerFunc(RemoteRequestHandler))
if err != nil {
return err
}
}
return nil
}