Прокси весь трафик без сопоставления доменных имен в Haproxy

782
charith

Я использую 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
Пожалуйста, опубликуйте соответствующий блок из вашей конфигурации haproxy и версии haproxy. Jim G. 6 лет назад 0
@JimG. пожалуйста, проверьте, я обновил мой вопрос с помощью файла конфигурации Haproxy charith 6 лет назад 0

1 ответ на вопрос

1
Tobias Hagenbeek

Как упоминалось ранее, чтобы быть окончательным, нам нужно знать вашу версию, так как формат конфигурации изменился между версиями, но вот как я это делаю (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, а затем будет использовать желаемое отображение бэкенда.