Como você mascara URLs no HAProxy?

1

Existe alguma maneira de fazer o mascaramento de URL no HAProxy? Gostaria de ter um URL direcionando para meu balanceador de carga, ou seja, www.example.com , redirecionar para outro URL que tenho para outro aplicativo . No entanto, gostaria que o navegador do usuário ainda exibisse o URL original, ( www.example.com ). Como eu faria isso?

    
por Grant 16.06.2015 / 15:51

2 respostas

0

Em vez de fazer o mascaramento de URL, percebemos que poderíamos fazer isso mais facilmente apenas fazendo um redirecionamento no backend ao enviar para um servidor de back-end. Não sei se isso é ideal, mas atingiu nosso objetivo até agora. Aqui está o código:

frontend http_in

    ...
    acl is_test1.domain.com hdr(host) -i test1.domain.com                                        # Host & Domain only check.
    acl is_path_null path /                                                                                        # No path check
    use_backend domain.com.nopath if is_test1.domain.com is_path_null                   # If Host & Domain matches and path is null.
    use_backend domain.com.path if is_test1.domain.com !is_path_null                      # If Host & Domain matches and path is not null.

frontend https_in

    ...
    acl is_path_null path /                                                                                        # No path check
    use_backend domain.com.nopath if { ssl_fc_sni -i test1.domain.com } is_path_null # If Host & Domain matches and path is null.
    use_backend domain.com.path if { ssl_fc_sni -i test1.domain.com } !is_path_null    # If Host & Domain matches and path is not null.

backend domain.com.nopath

    ...
    server SERVER IP#:80 redir https://test1.domain.com/webapp check

backend domain.com.path

    ...
    server SERVER IP#:80 check
    
por 18.06.2015 / 19:07
0

Você provavelmente pode fazer isso usando reqrep .

frontend FE
  bind 10.10.10.10:80
  mode http

  acl is_domain.com hdr(host) -i domain.com
  use_backend BE:domain.com if is_domain.com

backend BE:domain.com
  mode http
  reqrep ^([^\ ]*)\ (.*) \ /path/
  server domain2.com:80

No entanto, você provavelmente deve colocar o IP que domain2.com resolve na linha server para que você não tenha um comportamento estranho.

    
por 16.06.2015 / 20:35