diff --git a/plugin/forward/setup.go b/plugin/forward/setup.go index fff6ce33f..0c2455dfe 100644 --- a/plugin/forward/setup.go +++ b/plugin/forward/setup.go @@ -1,6 +1,7 @@ package forward import ( + "crypto/tls" "errors" "fmt" "strconv" @@ -117,6 +118,11 @@ func parseStanza(c *caddy.Controller) (*Forward, error) { if f.tlsServerName != "" { f.tlsConfig.ServerName = f.tlsServerName } + + // Initialize ClientSessionCache in tls.Config. This may speed up a TLS handshake + // in upcoming connections to the same TLS server. + f.tlsConfig.ClientSessionCache = tls.NewLRUClientSessionCache(len(f.proxies)) + for i := range f.proxies { // Only set this for proxies that need it. if transports[i] == transport.TLS {