haproxy: So fangen Sie Links ab, die direkt auf die Backend-Server verweisen

haproxy: So fangen Sie Links ab, die direkt auf die Backend-Server verweisen

Ich habe Haproxy eingerichtet und es funktioniert einwandfrei. Ich kann auf Webseiten zugreifen, die auf Servern im Backend liegen.

Der Aufbau ist wie folgt:

Es gibt einen einzigen Frontend-Haproxy-Server, der je nach Port auf ein anderes Backend verweist

  • frontend:81 verweist auf backend:8100
  • frontend:82 verweist auf backend:8200

Auf der Frontend-Webseite http://frontend:82/gibt es Links wie http://frontend:82/foodiese. Wenn ich auf einen dieser Links klicke, stellt Haproxy sicher, dass eine Verbindung zum richtigen Backend-Server hergestellt wird. Einer dieser Links verweist auf http://backend:8200/bar(Backend-Server und anderer Port).

Wenn ich auf diesen Link klicke, werde ich zum Server im Backend und nicht zum Frontend von haproxy weitergeleitet. Gibt es eine Möglichkeit, diese Aufrufe an die Backend-Server abzufangen?

Antwort1

Wenn der Benutzer auf den Link klickt http://backend:8200/bar, wird die Anfrage nicht abgefangen, es sei denn, der DNS für „Backend“ verweist auf Ihren Haproxy.

Ports sind hierfür wahrscheinlich nicht die beste Möglichkeit.

Besser wäre es, wenn Sie ein Frontend auf 80 hätten und ACLs auf Basis der URL verwenden würden.

Z.B:

frontend http_frontend 
   bind *:80
   acl path_foo path_beg /foo
   acl path_barbar path_beg /bar 
   use_backend foo_backend if path_foo
   use_backend bar_backend if path_bar

backend foo_backend
   server backend:8200

backend bar_backend
   server backend:8100

Auf diese Weise können Sie sämtliche Portzuweisungen aus den Links entfernen.

verwandte Informationen