diff --git a/modules/caddyhttp/reverseproxy/command.go b/modules/caddyhttp/reverseproxy/command.go
index <HASH>..<HASH> 100644
--- a/modules/caddyhttp/reverseproxy/command.go
+++ b/modules/caddyhttp/reverseproxy/command.go
@@ -18,6 +18,7 @@ import (
 	"encoding/json"
 	"flag"
 	"fmt"
+	"net"
 	"net/http"
 	"net/url"
 	"strings"
@@ -80,6 +81,14 @@ func cmdReverseProxy(fs caddycmd.Flags) (int, error) {
 		return caddy.ExitCodeFailedStartup, fmt.Errorf("parsing 'to' URL: %v", err)
 	}
 
+	if toURL.Port() == "" {
+		toPort := "80"
+		if toURL.Scheme == "https" {
+			toPort = "443"
+		}
+		toURL.Host = net.JoinHostPort(toURL.Host, toPort)
+	}
+
 	ht := HTTPTransport{}
 	if toURL.Scheme == "https" {
 		ht.TLS = new(TLSConfig)
reverse_proxy: Add port to upstream address if only implied in scheme