HaProxy-Weiterleitung zur internen URL

HaProxy-Weiterleitung zur internen URL

Ich habe eine Konfiguration mit zwei Backend-Servern. Ich muss 301 auf jeden Server mit einer internen URL auf HTTP umleiten. Es ist schwierig, SSL zu verwenden, da ich in dieser Konfiguration SSL nicht auf dem Report Server installieren kann. Außerdem kann ich die virtuelle Domäne und die gemeinsam genutzte IP nicht verwenden, um den Datenverkehr umzuleiten, da beim Anzeigen von Berichten ein internes Problem mit dem Report Viewer vorliegt. Ich muss den Datenverkehr nur auf den Backend-Server umleiten, vorzugsweise mit einer internen URL, aber die IP ist auch in Ordnung.

Im Moment weiß ich, wie das bei einem bestimmten Host geht, aber nicht bei dem aktuellen Server.

Konfiguration: Aktiv/Passiv-Konfiguration für das Backend.

  1. HA-Proxy Version 2.0.29-0ubuntu1

  2. Ubuntu 20.04.5 LTS

  3. Keepalived 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
    

Antwort1

Dies wurde durch die Verwendung der ACL und des Parameters srv_is_up verwaltet.

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

verwandte Informationen