TsgcWebSocketLoadBalancerServer › Gebeurtenissen › OnLoadBalancerHTTPRequest
Wordt geactiveerd voor elk inkomend HTTP-verzoek dat door de load balancer wordt ontvangen voordat het naar de geselecteerde backendserver wordt doorgestuurd.
property OnLoadBalancerHTTPRequest: TsgcWSLBHTTPRequestEvent;
// TsgcWSLBHTTPRequestEvent = procedure(Sender: TObject; Connection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo; aForward: TsgcWSServerForwardHTTP) of object
—
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.
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;