TsgcWebSocketHTTPServer › イベント › OnBeforeForwardHTTP
HTTP リクエストが送信される前に発火し、別の HTTP サーバーへ転送(リバースプロキシ)できるようにします。
property OnBeforeForwardHTTP: TsgcWSOnBeforeForwardHTTP;
// TsgcWSOnBeforeForwardHTTP = procedure(Connection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo; aForward: TsgcWSServerForwardHTTP) of object
—
OnBeforeForwardHTTP はすべてのHTTPリクエストに対して発火し、サーバーが選択されたエンドポイントのリバースプロキシとして機能できるようにします。ARequestInfo.Document を調べてリクエストを転送する必要があるかどうかを判断し、転送が必要な場合は aForward.Enabled を True に設定し、aForward.URL にターゲットサーバーを割り当てます。aForward オブジェクトの追加プロパティで転送されたリクエストを細かく調整できます。Document(ターゲットパスのオーバーライド)、QueryParams、Host、Origin、CustomHeaders、LogFilename、NoCache、HTTPSターゲット用の TLSOptions などです。aForward.Enabled が False のままの場合、リクエストは通常通り OnCommandGet/OnCommandOther を通じてローカルで処理されます。
procedure OnBeforeForwardHTTP(Connection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo;
aForward: TsgcWSServerForwardHTTP);
begin
if ARequestInfo.Document = '/internal' then
begin
aForward.Enabled := True;
aForward.URL := 'http://localhost:8080';
end;
end;