从一个球童重定向到另一个球童时出现 502

502 when redirecting from one caddy to another

所以我有一个 Master caddy,它重定向到 LAN 内的另一台服务器。

Master的当前配置如下:

http://example.com {
    proxy / http://192.168.1.153:80 {
        transparent
    }
}

https://example.com {
    proxy / https://192.168.1.153:443 {
        transparent
    }
}

192.168.1.153的caddy配置如下:

http://example.com, https://example.com {
    root /example.com
}

http://example.com works fine but https://example.con 给出 502 Bad Gateway。

如果我使用 insecure_skip_verify 我会收到 403...而且我不想使用它。

80和443都在路由器上打开,重定向到Master caddy。我的配置一定有问题,但我看不到它是什么。

PD

我试过:

192.168.1.153:443

https://192.168.1.153

None 似乎有效。

已更新解决方案

http://example.com {
    redir https://{host}{uri}
}

https://example.com {
    proxy / 192.168.1.153:80 {
        transparent
    }
}

这也将 80 重定向到 443,但要注意的是 192.168.1.153 上的 "slave" 必须在端口 80 上响应,而不是在 443 上响应。因为 80 在球童大师。

当然不行。您至少有 2 台服务器,每台服务器都具有不同的 IP。那么,让我向您解释一下。

一台服务器将其 IP 绑定到 dns example.com,因此其 Caddyfile 可以在 http://example.com 上侦听。此外,此 caddyfile 重定向到 IP 地址为 192.168.1.153 的服务器(第二台服务器)。

第二台服务器既没有将 dns example.com 绑定到它的 IP,也不应该监听那个 dns。相反,您应该在其 IP 处更改其侦听器或仅定义端口。这是第二个 caddyfile 的样子。

:80 {
  tls off
  root /example.com
}

关于启用 SSL 您没有为 SSL 分配证书,因此在 443 添加 https:// 甚至侦听器没有意义。在获得证书之前将其保留在 http 中。

可以全程加密代理到另一个 HTTPS 后端。
您只需要指定发送到后端服务器的SNI即可。

使用 Caddy v2:

http://exmaple.com {
  reverse_proxy http://192.168.1.153
}
https://example.com {
  reverse_proxy https://192.168.1.153 {
    transport http {
      tls_server_name example.com
    }
  }
}

在后端,照常收听:

example.com {
  # Do whatever here
}