HTTP proxy
HttpServerConfig and HttpClientConfig
Standard HTTP proxy protocol (CONNECT tunneling and plain HTTP forwarding). Proto: protos/proto/vx/proxy/http/http.proto
This is not HTTP transport disguise (TransportConfig.http) — see Transport HTTP.
- Inbound (
HttpServerConfig): accepts client HTTP proxy requests, supportingCONNECTand plain HTTP (absolute URL) - Outbound (
HttpClientConfig): initiatesCONNECTto an upstream HTTP proxy, establishing a TCP tunnel. UDP is not supported
HttpServerConfig
Empty message with no configuration fields.
The inbound handler supports:
CONNECT— relays the TCP stream after returning200 Connection established- Plain HTTP — forwards HTTP/1.1 requests with absolute URLs (not
CONNECT)
Only TCP (and UNIX socket) inbounds are supported. HttpServerConfig itself has no authentication fields.
{
"@type": "type.googleapis.com/vx.proxy.http.HttpServerConfig"
}HttpClientConfig
accountOptional HTTP proxy authentication. When non-empty, sends a Proxy-Authorization: Basic ... header in the CONNECT request.
h1SkipWaitForReplybool
HTTP/1 CONNECT optimization, default false.
false: send theCONNECTrequest first, wait for the proxy to return200, then send the first payloadtrue: write the first payload in the same write as theCONNECTrequest (for upstreams that require the first packet with the handshake); also extends the timeout for waiting for the first payload to 1 second
No effect on HTTP/2 CONNECT (HTTP/2 can already carry the first payload in the request body).
{
"@type": "type.googleapis.com/vx.proxy.http.HttpClientConfig",
"account": {
"username": "user",
"password": "pass"
}
}Account
usernamestring
Proxy authentication username
passwordstring
Proxy authentication password
Related
- Transport HTTP — HTTP/2 transport disguise (different purpose)
- Outbounds — embed
HttpClientConfiginprotocol - Inbounds — embed
HttpServerConfiginprotocol