TsgcWebSocketLoadBalancerServerZdarzenia › OnLoadBalancerHTTPRequest

OnLoadBalancerHTTPRequest Zdarzenie

Wywoływane dla każdego przychodzącego żądania HTTP odebranego przez moduł równoważenia obciążenia przed jego przekazaniem do wybranego serwera backendowego.

Składnia

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

Wartość domyślna

Uwagi

OnLoadBalancerHTTPRequest jest wywoływane dla każdego żądania HTTP zaakceptowanego przez moduł równoważenia obciążenia (gdy LoadBalancer.Protocols.HTTP ma wartość True) bezpośrednio przed przekazaniem go do serwera zaplecza. ARequestInfo udostępnia przychodzące żądanie (Document, Params, RawHeaders, ContentType, PostStream), a aForward zawiera plan przekazywania: jego właściwości Host, Port i SSL można nadpisać, aby kierować do innego zaplecza, innej ścieżki URL (aForward.Document) lub przełączać TLS. Ustawić aForward.Handled := True, aby całkowicie pominąć przekazywanie i samodzielnie odpowiedzieć klientowi przez Connection. Typowe zastosowania to niestandardowe reguły routingu, przepisywanie żądań, wstrzykiwanie nagłówków lub odpowiedzi przetwarzane wewnętrznie dla punktów końcowych zdrowotnych.

Przykład


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;

Powrót do Zdarzeń