У меня только один общедоступный IP-адрес и три веб-сервера в LAN
. Я хочу перенаправить трафик с WAN
к веб-серверу, подобному этому, должен поддерживать SSL/TLS
перенаправление трафика:
https://www.example.com (A Record)===> 1.1.1.1(Public IP) ===> 192.168.1.1(Web 1)
https://www.example.net (A Record)===> 1.1.1.1(Public IP) ===> 192.168.1.2(Web 2)
Жестяная банка HAProxy закончить эту работу?
Если у вас есть сертификат / ключ для сайтов, вы можете перенаправить на разные серверы для нескольких полных доменных имен. Прокси-сервер высокой доступности должен иметь возможность расшифровывать трафик и читать заголовок хоста, если вы не хотите пытаться это сделать с пересылкой TCP, но вы теряете возможность сохранять постоянство. ваши файлы сертификатов должны быть в формате PEM.
frontend https--in bind 1.1.1.1:443 ssl crt /etc/haproxy/certs mode http option httplog use_backend bk_1 if { hdr_dom(host) -i www.example.com } { dst_port 443 } use_backend bk_2 if { hdr_dom(host) -i apps.example.com } { dst_port 443 } use_backend bk_3 if { hdr_dom(host) -i www.otherdomain.com } { dst_port 443 }
Если у вас только 1 внешний IP-адрес, вам нужно будет привязать сертификат SAN к внешней стороне, которая содержит все URL-адреса, которые вы хотите направить. Посмотрите на использование ACL для направления трафика. Как видно на https://seanmcgary.com/posts/haproxy---route-by-domain-name (не мой блог). HAProxy - идеальное решение для этого.
Не нужно использовать haproxy
, он не предназначен для балансировки http / https. В нашей среде мы используем nginx
с настроенными восходящими потоками. Также вы можете завершить ssl на nginx
и используйте простой http на бэкэнде.