VXVX Docs

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, supporting CONNECT and plain HTTP (absolute URL)
  • Outbound (HttpClientConfig): initiates CONNECT to 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 returning 200 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

account

Optional HTTP proxy authentication. When non-empty, sends a Proxy-Authorization: Basic ... header in the CONNECT request.

h1SkipWaitForReply
bool

HTTP/1 CONNECT optimization, default false.

  • false: send the CONNECT request first, wait for the proxy to return 200, then send the first payload
  • true: write the first payload in the same write as the CONNECT request (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

username
string

Proxy authentication username

password
string

Proxy authentication password

  • Transport HTTP — HTTP/2 transport disguise (different purpose)
  • Outbounds — embed HttpClientConfig in protocol
  • Inbounds — embed HttpServerConfig in protocol

Comments

Advertisements on this site are provided by third parties. We do not review or control their content and provide no guarantee for the faithfulness of their content.