1

Я использую Haproxy в моем VPS для потокового видео. с моей текущей настройкой мне нужно упомянуть каждый домен в разделе front-end и back-end в моем файле Haproxy.conf. если мне нужно посмотреть 10 каналов, мне нужно добавить много доменов. Я использую этот прокси только для определенного потокового сайта, а не для всего веб-трафика. Я установил Dnsmasq на свой маршрутизатор openwrt, и я могу указать только необходимые домены для моего VPS. Мне нужно добавить запись только для dnsmasq и мне нужна Haproxy для прокси всех вещей, которые dnsmasq бросает. я могу настроить что-то вроде подстановочных знаков в конфигурации Haproxy? или есть какие-то другие методы

Мой haproxy.conf, как это

# Frontend for connections over port 80/http
frontend f_sni_catchall  
    mode http
    bind 0.0.0.0:80
    log global
    option httplog
    option accept-invalid-http-request
    capture request  header Host len 50
    capture request  header User-Agent len 150

    use_backend b_sni_catchall      if { hdr(host) -i www.example.com }

    default_backend b_deadend

# Backend for handling connections over port 80/http
backend b_sni_catchall  
    log global
    mode http
    option httplog
    option http-server-close


    server www.example.com www.example.com:80 check inter 10s fastinter 2s downinter 2s fall 1800

вместо того, чтобы использовать www.example.com мне нужно использовать что-то вроде этого с джокером

use_backend b_sni_catchall      if { hdr(host) -i *.com }

server*e.com *.com:80 check inter 10s fastinter 2s downinter 2s fall 1800

Использование полных доменов в файле конфигурации невозможно из-за проблемы с разрешением DNS. Haproxy не начинается с некоторых доменных имен. Кроме этого мне нужно установить DNS-указание с помощью dnsmasq или Bind. для этого мне нужен haproxy для настройки как пересылки всех доменов что он получает от пользователя

1 ответ1

1

Как упоминалось ранее, чтобы быть окончательным, нам нужно знать вашу версию, так как формат конфигурации изменился между версиями, но вот как я это делаю (1.6.3)

frontend web
    bind *:80 name http

    ### Wildcard ACL ###
    acl is_wild hdr_dom(host) -i wild

    ### Wildcard Backend###
    use_backend wild if is_wild


backend wild
    cookie  WILD_HTTP insert
    server  wild 10.1.1.1:80 cookie A check

Как вы можете видеть, * не требуется, все, что соответствует (например, wild.mydomain.com, mydomain.wild.com, что-то.mewild.com) будет отправлено на этот ACL, а затем будет использовать желаемое отображение бэкенда.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .