Caddy2 的 Caddyfile 指令发生了一定的变化,升级以后真有些不适应。当前涉及到需要反代一个 https 的服务,如果被反代的服务ssl证书是公共信任的,直接使用以下格式即可。

指令中的 * 可有可无

ismy.fun {
    reverse_proxy * {
        to https://192.168.192.19:10443
    }
}

如果反代的 https 服务器证书是自签名的,就需要添加一个跳过安全验证的指令:

ismy.fun {
    reverse_proxy * {
        to https://192.168.192.19:10443
        transport http {
            tls_insecure_skip_verify
        }
    }
}

Caddy2 的配置灵活度比上一个版本高了很多,默认情况下 reverse_proxy 会根据反代的地址和端口决定协议,80443端口会自动的识别为httphttps,不需要显式指定协议。当然,在地址前面添加httphttps协议头也是同样的效果。在这种情况下,后面通过 transport 显式 指定的 http 协议不会生效。

再比如,反代地址设置为 192.168.192.19:10443,如果不指定协议头,就需要显式的指定协议类型,配置文件就应该写成:

ismy.fun {
    reverse_proxy * {
        to 192.168.192.19:10443
        transport http {
            tls
            tls_insecure_skip_verify  //如果反代服务为自签名证书
        }
    }
}

Reference