@DrSterN
Сис. админ

Возможно ли по адресу запроса отправить запрос на определенный backend?

Допустим есть 1 внешний айпишник, на него приходят запросы типа chat.demo.com(перенаправление с http на https), post.demo.com(imap,smtp), rd.demo.com(443).
Возможно ли используя 1 внешний айпишник балансить в зависимости от запроса, на соответствующий сервер ?
удалось только веб балансить, imap smtp ходить не хотят.

defaults
log global
mode tcp
option httplog
option dontlognull
timeout connect 5s
timeout client 1m
timeout server 1m
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
frontend fe_chat
mode http
bind *:80
bind *:443 ssl crt /etc/ssl/private/
option httpclose
acl acl_chat1.demo.com hdr(host) chat1.demo.com
use_backend be_chat if acl_chat1.demo.com

frontend fe_post1
mode tcp
option forwardfor
bind *:443 ssl crt /etc/ssl/private/
tcp-request content accept if { req_ssl_hello_type 1 }
use_backend be_post1 if { req_ssl_sni -i post1.demo.com }

backend be_chat
mode http
http-request redirect scheme https unless { ssl_fc }
server chat localip:2999 check

backend be_post1
mode tcp
server post localip:443check

Как уже не пробовал, и в 1 фронт собирать конфиг и разносить не получается...
  • Вопрос задан
  • 212 просмотров
Решения вопроса 1
@NortheR73
системный инженер
imap smtp ходить не хотят.
- а где у вас фронтенды, которые слушают соответствующие порты?
у меня вот такой конфиг для SMTP работает (аналогично для IMAP/143):
#----------Frontends-----------------#
frontend fe_smtp
    mode tcp
    option tcplog
    maxconn 5000
    bind xxx.xxx.xxx.xxx:25
    default_backend be_smtp

#----------Backends------------------#
backend be_smtp
    mode tcp
    fullconn 5000
    balance leastconn
    option log-health-checks
    server smtp1 smtp1.domain.corp check port 25
    server smtp2 smtp2.domain.corp check port 25
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы