¿Cómo se enmascaran las URL en HAProxy?

¿Cómo se enmascaran las URL en HAProxy?

¿Hay alguna forma de enmascarar URL en HAProxy? Me gustaría tener una URL que dirija a mi balanceador de carga, es decirwww.ejemplo.com, redirigir a otra URL que tengo para otra aplicación. Sin embargo, me gustaría que el navegador del usuario aún muestre la URL original (www.ejemplo.com). ¿Cómo haría esto?

Respuesta1

Probablemente puedas hacer esto 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 ^([^\ ]*)\ (.*) \1\ /path/\2
  server domain2.com:80

Sin embargo, probablemente deberías poner la IP que domain2.comse resuelve en la serverlínea para no terminar con un comportamiento extraño.

Respuesta2

En lugar de enmascarar URL, nos dimos cuenta de que podíamos hacerlo más fácilmente simplemente haciendo una redirección en el backend al enviar a un servidor backend. No sé si esto es ideal, pero hasta ahora logró nuestro objetivo. Aquí está el código:

interfaz 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.

interfaz 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.

dominio backend.com.nopath

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

dominio backend.com.ruta

    ...
    server SERVER IP#:80 check

información relacionada