TsgcWebSocketLoadBalancerServerEreignisse › OnLoadBalancerHTTPRequest

OnLoadBalancerHTTPRequest Ereignis

Wird für jede eingehende HTTP-Anfrage ausgelöst, die vom Load Balancer empfangen wird, bevor sie an den ausgewählten Backend-Server weitergeleitet wird.

Syntax

property OnLoadBalancerHTTPRequest: TsgcWSLBHTTPRequestEvent;
// TsgcWSLBHTTPRequestEvent = procedure(Sender: TObject; Connection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo; aForward: TsgcWSServerForwardHTTP) of object

Standardwert

Hinweise

OnLoadBalancerHTTPRequest wird für jede vom Load Balancer akzeptierte HTTP-Anfrage ausgelöst (wenn LoadBalancer.Protocols.HTTP True ist), unmittelbar bevor sie an einen Backend-Server weitergeleitet wird. ARequestInfo stellt die eingehende Anfrage bereit (Document, Params, RawHeaders, ContentType, PostStream) und aForward trägt den Weiterleitungsplan: Seine Eigenschaften Host, Port und SSL können umgeschrieben werden, um ein anderes Backend, einen anderen URL-Pfad (aForward.Document) anzusprechen oder TLS umzuschalten. Setzen Sie aForward.Handled := True, um die Weiterleitung vollständig zu überspringen und dem Client selbst über Connection zu antworten. Typische Anwendungsfälle sind benutzerdefinierte Routing-Regeln, das Umschreiben von Anfragen, das Einfügen von Headern oder In-Process-Antworten für Health-Endpunkte.

Beispiel


procedure OnLoadBalancerHTTPRequest(Sender: TObject; Connection: TsgcWSConnection;
  ARequestInfo: TIdHTTPRequestInfo; aForward: TsgcWSServerForwardHTTP);
begin
  // route /api/* to a different backend
  if StartsText('/api', ARequestInfo.Document) then
  begin
    aForward.Host := '10.0.0.10';
    aForward.Port := 9000;
  end;
end;

Zurück zu Ereignissen