502 при перенаправлении с одного кэдди на другой - PullRequest
0 голосов
/ 02 октября 2019

Итак, у меня есть Master caddy, который перенаправляет на другие серверы внутри локальной сети.

Текущая конфигурация 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 следующая:

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

http://example.com работает нормально, но https://example.con дает 502 Bad Gateway.

Если я использую insecure_skip_verify, я получаю 403 ... И я все равно не хочу его использовать.

И 80, и 443 открыты на маршрутизаторе и перенаправляются на мастер-кэдди,Должно быть, что-то не так с моей конфигурацией, но я не вижу, что это.

PD

Я пытался:

192.168.1.153: 443

https://192.168.1.153

Кажется, что ничего не работает.

Обновлено с решением

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

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

Это также перенаправляет от 80 до 443, но подвох в том, что «ведомый» на 192.168.1.153 должен отвечать на порту 80, а не на 443. Поскольку 80 «обновляется» до 443 на главном кэдди.

1 Ответ

1 голос
/ 27 октября 2019

Конечно, это не сработает. У вас есть как минимум 2 сервера с разными IP-адресами. Итак, позвольте мне объяснить это вам.

Один сервер имеет свой IP-адрес, связанный с DNS example.com, поэтому его Caddyfile может прослушивать на http://example.com. Кроме того, этот caddyfile перенаправляет на сервер с IP 192.168.1.153 (второй сервер).

У второго сервера нет привязанного к его IP-адресу днс example.com и он не должен прослушивать этот днс. Вместо этого вы должны изменить его listerner на его IP или просто определить порт. Вот как должен выглядеть второй caddyfile.

:80 {
  tls off
  root /example.com
}

Относительно включенного SSL Вы не назначаете сертификаты для SSL, поэтому нет смысла добавлять https: // или даже прослушиватели на 443. Держите его в http, пока не получитесертификаты.

...