diff --git a/serverutil/http.go b/serverutil/http.go
index 1c218fedffff34aa151e855044945e7c90d10f9f..9a72a78437a01d624b3ab61dd318e5484875e00d 100644
--- a/serverutil/http.go
+++ b/serverutil/http.go
@@ -30,19 +30,21 @@ type ServerConfig struct {
 // SIGINT or SIGTERM and return nil.
 func Serve(h http.Handler, serverConfig *ServerConfig, addr string) (err error) {
 	var tlsConfig *tls.Config
-	if serverConfig.TLS != nil {
-		tlsConfig, err = serverConfig.TLS.TLSConfig()
-		if err != nil {
-			return err
-		}
-		h, err = serverConfig.TLS.TLSAuthWrapper(h)
-		if err != nil {
-			return err
+	if serverConfig != nil {
+		if serverConfig.TLS != nil {
+			tlsConfig, err = serverConfig.TLS.TLSConfig()
+			if err != nil {
+				return err
+			}
+			h, err = serverConfig.TLS.TLSAuthWrapper(h)
+			if err != nil {
+				return err
+			}
 		}
-	}
 
-	if serverConfig.MaxInflightRequests > 0 {
-		h = newLoadSheddingWrapper(serverConfig.MaxInflightRequests, h)
+		if serverConfig.MaxInflightRequests > 0 {
+			h = newLoadSheddingWrapper(serverConfig.MaxInflightRequests, h)
+		}
 	}
 
 	srv := &http.Server{