Class TransparentBaseProxyEndPoint
Inheritance
TransparentBaseProxyEndPoint
Namespace: Titanium.Web.Proxy.Models
Assembly: Titanium.Web.Proxy.dll
Syntax
public abstract class TransparentBaseProxyEndPoint : ProxyEndPoint
Constructors
|
Edit this page
View Source
TransparentBaseProxyEndPoint(IPAddress, int, bool)
Declaration
protected TransparentBaseProxyEndPoint(IPAddress ipAddress, int port, bool decryptSsl)
Parameters
Properties
|
Edit this page
View Source
ForwardCleartext
When true together with DecryptSsl, the proxy
terminates client TLS and opens a cleartext upstream TCP connection to
ForwardHost/ForwardPort (classic TLS-terminating reverse proxy).
Defaults to false (re-encrypt to the origin when the client spoke HTTPS).
Declaration
public bool ForwardCleartext { get; set; }
Property Value
|
Edit this page
View Source
ForwardHost
Optional fixed upstream server to forward all traffic on this endpoint to.
TCP connects to this host. For re-encrypt (ForwardCleartext false),
TLS SNI and HTTP Host stay on the client authority. For TLS terminate
(ForwardCleartext true), Host is rewritten to this host and
ForwardPort so HTTP origins see their own bind identity.
Declaration
public string? ForwardHost { get; set; }
Property Value
|
Edit this page
View Source
ForwardPort
Optional fixed upstream port. When null the original request port is used.
Declaration
public int? ForwardPort { get; set; }
Property Value
|
Edit this page
View Source
GenericCertificateName
The hostname of the generic certificate to negotiate SSL.
This will be only used when Sever Name Indication (SNI) is not supported by client,
or when it does not indicate any host name.
Declaration
public abstract string GenericCertificateName { get; set; }
Property Value
|
Edit this page
View Source
MaxConcurrentTlsHandshakes
Max concurrent inbound TLS handshakes for TerminateTls listeners.
Declaration
public int MaxConcurrentTlsHandshakes { get; set; }
Property Value
|
Edit this page
View Source
Passthrough
When true, accepted sockets are copied to ForwardHost without HTTP parsing.
Declaration
public bool Passthrough { get; set; }
Property Value
|
Edit this page
View Source
PassthroughDefaultClusterId
TCP passthrough only. Cluster used when no SNI route matches, or the client sends no server name.
Declaration
public string? PassthroughDefaultClusterId { get; set; }
Property Value
|
Edit this page
View Source
PassthroughIdleTimeout
TCP passthrough only. Closes a connection with no bytes in either direction for this long. Zero disables.
Declaration
public TimeSpan PassthroughIdleTimeout { get; set; }
Property Value
|
Edit this page
View Source
PassthroughProxyProtocol
TCP passthrough only. Header written to the upstream before the client's bytes.
Declaration
public PassthroughProxyProtocolMode PassthroughProxyProtocol { get; set; }
Property Value
|
Edit this page
View Source
PassthroughRoutes
TCP passthrough only. Routes chosen by the TLS server name in the client's first record.
Each names a cluster whose destinations are balanced. With no match the connection goes to
PassthroughDefaultClusterId, then ForwardHost.
Declaration
public IReadOnlyList<PassthroughSniRoute>? PassthroughRoutes { get; set; }
Property Value
|
Edit this page
View Source
PassthroughSniReadTimeout
TCP passthrough only. How long to wait for the first TLS record when PassthroughRoutes
is set. A client that stays silent (a server-speaks-first protocol) is then sent to the default route.
Zero or negative uses 5 seconds.
Declaration
public TimeSpan PassthroughSniReadTimeout { get; set; }
Property Value
|
Edit this page
View Source
StreamFilters
TCP passthrough only. L4 script filters, run in order. Null (the default) or empty keeps the plain relay:
the accept loop picks the filtered relay only when this holds at least one filter.
Declaration
public IReadOnlyList<IStreamScriptFilter>? StreamFilters { get; set; }
Property Value
|
Edit this page
View Source
TerminateTls
When true with Passthrough, inbound TLS is terminated before relaying bytes.
Declaration
public bool TerminateTls { get; set; }
Property Value
|
Edit this page
View Source
TerminateTlsAlpn
ALPN names offered on TerminateTls listeners. Null or empty skips ALPN.
Declaration
public IReadOnlyList<string>? TerminateTlsAlpn { get; set; }
Property Value
|
Edit this page
View Source
TlsHandshakeTimeout
Declaration
public TimeSpan TlsHandshakeTimeout { get; set; }
Property Value