В настоящее время мы используем HAproxy для перенаправления входящего трафика на наш домен. пример.домен
в наши контейнеры, которые доступны только через локальный интерфейс (например, 127.0.0.1:12000:8080
Для этого наша текущая конфигурация выглядит примерно так:
значения по умолчанию
режим http
тайм-аут подключения 5000
проверка таймаута 5000
тайм-аут клиента 20000
тайм-аут сервера 20000
внешний домен
привязать *:80
привязать *: 443 ssl crt /etc/haproxy/certs/domain.cert
привязать *: 11000-11199 ssl crt /etc/haproxy/certs/domain.cert
Схема перенаправления http-запроса https, если { ssl_fc } # ssl_fc возвращает true, если запрос уже использует SSL
http-запрос set-header X-Forwarded-Port %[dst_port]
http-запрос добавить заголовок X-Forwarded-Proto https, если { ssl_fc }
# Порты 11000-11099 зарезервированы для безопасного трафика
acl secure_0_host dst_port 11000
acl secure_1_host dst_port 11001
# Порты 11100-11199 зарезервированы для небезопасного трафика
acl insecure_0_host dst_port 11100
acl insecure_1_host dst_port 11101
# Безопасные серверные части
use_backend secure_0, если secure_0_host
use_backend secure_1, если secure_1_host
# Небезопасные серверные части
use_backend insecure_0, если insecure_0_host
use_backend insecure_1, если insecure_1_host
# Резервный сервер
default_backend fallback_backend
бэкэнд fallback_backend
адрес перенаправления http-запроса https://example.domain код 302
# Безопасные серверные части
серверная часть secure_0
server secure_0 127.0.0.1:12000 ssl проверить нет
серверная часть secure_1
server secure_1 127.0.0.1:12001 ssl проверить нет
# Небезопасные серверные части
серверная часть небезопасна_0
сервер insecure_0 127.0.0.1:12100
серверная часть небезопасна_1
сервер небезопасный_1 127.0.0.1:12101
Эта настройка работает, но очень утомительно вручную добавлять каждое сопоставление портов, а также меня немного раздражает, что я должен использовать разные порты (12000-12099
) для контейнеров докеров, чем я слушаю с помощью HAproxy.
Можно ли как-то просто сказать конфигу, что данный портранж(11000-11099
) следует передать 127.0.0.1:11000-11099
?