Pode haproxy load-balance por URL referenciador? (filtrando um cenário do Slashdot)

4

Eu tenho um aplicativo da web com desempenho insatisfatório que será massivamente expandido para lidar com o peso da Internet.

O haproxy será usado para distribuir as solicitações da web sem estado para muitos servidores. No entanto, ainda há um limite para o tráfego que pode ocorrer e gostaríamos de priorizar usuários genuínos.

O haproxy pode ser configurado para enviar tráfego de um determinado URL referenciador para uma caixa específica?

Por exemplo se o gateway da implantação for mencionado em um artigo de notícias, posso redirecionar o tráfego desse artigo para um site HTML estático rápido, dizendo algo nas linhas de "obrigado por seu interesse, aqui está alguma informação".?

Se isso for possível, talvez alguém possa compartilhar um snippet relevante do arquivo de configuração.

    
por Robin 02.09.2011 / 17:37

2 respostas

7

Sim, pode. A partir da documentação ,

hdr_dir

hdr_dir(header)

Returns true when one of the headers contains one of the strings either isolated or delimited by slashes. This is used to perform filename or directory name matching, and may be used with Referer. See "hdr" for more information on header matching.

Para que você possa verificar hdr_dir (referer) para ver se ele corresponde a um caminho específico, e se isso acontecer, defina um sinalizador e, em seguida, envie tráfego para vários destinos com base nesse sinalizador.

acl slashdot hdr_dir(referer) -i /some/path
  use_backend cluster1 if slashdot
  use backend cluster2 if !slashdot

backend cluster1
  server servera 192.168.0.50:80

backend cluster2
  server serverb 192.168.0.51:80

Não testado.

    
por 02.09.2011 / 22:18
2

Me deparei com esta postagem , que fala sobre o uso de uma configuração nesse sentido:

acl invalid_referer hdr_sub(referer) -i -f /etc/haproxy/banned.haproxy.conf
block if invalid_referer

Ele deve retornar um 403 para o tráfego de referência de bloco. Você deve poder corrigir a configuração para lidar com o tráfego de maneira diferente (ou seja, passar para um backup diferente)

    
por 02.09.2011 / 17:56