@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 фронт собирать конфиг и разносить не получается...
  • Вопрос задан
  • 250 просмотров
Решения вопроса 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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы