TsgcWebSocketLoadBalancerServerGebeurtenissen › OnLoadBalancerHTTPRequest

OnLoadBalancerHTTPRequest Gebeurtenis

Wordt geactiveerd voor elk inkomend HTTP-verzoek dat door de load balancer wordt ontvangen voordat het naar de geselecteerde backendserver wordt doorgestuurd.

Syntaxis

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

Standaardwaarde

Opmerkingen

OnLoadBalancerHTTPRequest wordt geactiveerd voor elk HTTP-verzoek dat door de load balancer wordt geaccepteerd (wanneer LoadBalancer.Protocols.HTTP True is), onmiddellijk voordat het naar een backend-server wordt doorgestuurd. ARequestInfo geeft het inkomende verzoek weer (Document, Params, RawHeaders, ContentType, PostStream) en aForward bevat het doorstuurplan: de eigenschappen Host, Port en SSL kunnen worden herschreven om een andere backend, een ander URL-pad (aForward.Document) of TLS in/uit te schakelen. Stel aForward.Handled := True in om het doorsturen volledig over te slaan en de client zelf te beantwoorden via Connection. Typische toepassingen zijn aangepaste routeringsregels, verzoek-herschrijving, header-injectie of in-process-antwoorden voor health-eindpunten.

Voorbeeld


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;

Terug naar gebeurtenissen