TsgcWebSocketLoadBalancerServerOlaylar › OnLoadBalancerHTTPRequest

OnLoadBalancerHTTPRequest Event

Yük dengeleyici tarafından alınan her gelen HTTP isteği, seçilen arka uç sunucusuna iletilmeden önce tetiklenir.

Sözdizimi

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

Varsayılan Değer

Remarks

OnLoadBalancerHTTPRequest, yük dengeleyici tarafından kabul edilen her HTTP isteği için (LoadBalancer.Protocols.HTTP True olduğunda) bir arka uç sunucusuna iletilmeden hemen önce tetiklenir. ARequestInfo, gelen isteği (Document, Params, RawHeaders, ContentType, PostStream) sunar ve aForward iletme planını taşır: Host, Port ve SSL özellikleri farklı bir arka ucu, farklı bir URL yolunu (aForward.Document) hedeflemek için veya TLS'yi değiştirmek için yeniden yazılabilir. İletmeyi tamamen atlamak ve istemciye Connection aracılığıyla kendiniz yanıt vermek için aForward.Handled := True olarak ayarlayın. Tipik kullanımlar özel yönlendirme kuralları, istek yeniden yazma, başlık enjeksiyonu veya sağlık endpoint'leri için işlem içi yanıtlardır.

Örnek


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;

Olaylara Dön