TsgcWebSocketLoadBalancerServerEventos › OnLoadBalancerHTTPRequest

OnLoadBalancerHTTPRequest Evento

Se activa para cada solicitud HTTP entrante recibida por el balanceador de carga antes de reenviarla al servidor de backend seleccionado.

Sintaxis

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

Valor Predeterminado

Observaciones

OnLoadBalancerHTTPRequest se activa para cada solicitud HTTP aceptada por el balanceador de carga (cuando LoadBalancer.Protocols.HTTP es True) inmediatamente antes de ser reenviada a un servidor backend. ARequestInfo expone la solicitud entrante (Document, Params, RawHeaders, ContentType, PostStream) y aForward lleva el plan de reenvío: sus propiedades Host, Port y SSL pueden reescribirse para apuntar a un backend diferente, una ruta de URL diferente (aForward.Document), o para activar/desactivar TLS. Establezca aForward.Handled := True para omitir el reenvío por completo y responder al cliente usted mismo a través de Connection. Los usos típicos son reglas de enrutamiento personalizadas, reescritura de solicitudes, inyección de cabeceras, o respuestas en proceso para endpoints de comprobación de estado.

Ejemplo


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;

Volver a Eventos