TsgcWebSocketHTTPServer › Events › 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;