Proxy todo o tráfego sem corresponder os nomes de domínio no Haproxy

1

Estou usando o Haproxy no meu VPS para transmitir algum conteúdo de vídeo. com a minha configuração atual eu preciso mencionar cada domínio na seção front-end e back-end no meu arquivo Haproxy.conf. Se eu precisar assistir 10 canais, preciso adicionar muitos domínios. Eu só uso este proxy para determinado site de streaming não para todo o tráfego da web. Eu instalei o Dnsmasq no meu roteador openwrt e posso apontar apenas os domínios necessários para o meu VPS. Eu preciso adicionar apenas a entrada para dnsmasq e eu preciso de Haproxy para proxy todas as coisas dnsmasq jogá-lo. posso configurar algo como curingas na configuração do Haproxy? ou existem outros métodos

Meu haproxy.conf assim

# 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

em vez de usar www.example.com, eu preciso usar algo assim com o curinga

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

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

O uso de domínios completos no arquivo de configuração não é possível devido ao problema de resolução de DNS. Haproxy não vai começar com alguns nomes de domínio. Além disso, preciso definir o DNS apontando usando dnsmasq ou Bind. para fazer isso eu preciso haproxy para configurado como encaminhar todos os domínios o que obtém do usuário

    
por charith 16.05.2017 / 07:35

1 resposta

1

Como foi mencionado antes, para sermos conclusivos precisaríamos conhecer sua versão, já que o formato de configuração mudou entre as versões, mas aqui está como eu faço (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

Como você pode ver, não * necessário, qualquer coisa que corresponda (ou seja, wild.mydomain.com, mydomain.wild.com, something.mewild.com) será enviada para esta acl e, em seguida, usará o mapeamento de back-end desejado .

    
por 02.08.2017 / 23:11