HaProxy redirige a la URL interna

HaProxy redirige a la URL interna

Tengo una configuración con dos servidores backend. Necesito redirigir 301 a cada servidor con una URL interna en HTTP. Es difícil usar SSL porque no puedo instalar SSL en el servidor de informes en esa configuración. Además, no puedo usar el dominio virtual y la IP compartida para redirigir el tráfico porque hay algún problema interno con el Visor de informes al visualizar los informes. Sólo necesito redirigir el tráfico al servidor backend, preferiblemente con una URL interna, pero la IP también estará bien.

Por el momento sé cómo hacerlo en un host específico pero no en el servidor actual.

Configuración: Configuración activa/pasiva para el backend.

  1. HA-Proxy versión 2.0.29-0ubuntu1

  2. Ubuntu 20.04.5 LTS

  3. Mantener vivo v2.0.19

    frontend raporty
         bind 192.168.0..108:80
         bind 192.168.0.108:443 ssl crt /etc/ssl/certs/haproxy.pem
         default_backend reportserver
         option forwardfor
    
    backend reportserver
         mode http
         balance roundrobin
         option httpchk uri /reports
         http-check  expect status 401
         http-response set-header X-Server %s
         http-request redirect  code 301  location http://sql02.domain.local%[capture.req.uri]
         server   sql01  192.168.0.11:80 check check fall 5
         server   sql02  192.168.0.111:80 check check fall 5
         http-response set-header X-Server %s
    

Respuesta1

Esto se gestionó mediante la ACL y el parámetro srv_is_up.

frontend raporty
        bind 192.168.0.108:80
        bind 192.168.0.108:443 ssl crt  /etc/ssl/certs/haproxy.pem
        http-response set-header X-Server %s
        http-response set-header Host %s
        default_backend reportserver
        option forwardfor



backend reportserver
        mode http
        balance roundrobin
        option httpchk uri /reports
        http-check  expect status 401
        acl asql01 srv_is_up(reportserver/sql01)
        acl asql02 srv_is_up(reportserver/sql02)
        http-request set-header Host %s
        http-response set-header Host %s
        http-request redirect  code 301 location http://sql01.domain.local%[capture.req.uri]  if asql01
        http-request redirect  code 301 location http://sql02.domain.local%[capture.req.uri]  if asql02
        server   sql01  sql01.domain.local:80 check check fall 5
        server   sql02  sql02.domain.local:80 check check fall 5
        http-response set-header X-Server %s

información relacionada