Crate pingora_proxy

Source
Expand description

§pingora-proxy

Programmable HTTP proxy built on top of pingora_core.

§Features

  • HTTP/1.x and HTTP/2 for both downstream and upstream
  • Connection pooling
  • TLSv1.3, mutual TLS, customizable CA
  • Request/Response scanning, modification or rejection
  • Dynamic upstream selection
  • Configurable retry and failover
  • Fully programmable and customizable at any stage of a HTTP request

§How to use

Users of this crate defines their proxy by implementing ProxyHttp trait, which contains the callbacks to be invoked at each stage of a HTTP request.

Then the service can be passed into http_proxy_service() for a pingora_core::server::Server to run it.

See examples/load_balancer.rs for a detailed example.

Modules§

prelude

Structs§

HttpProxy
The concrete type that holds the user defined HTTP proxy.
Session
The established HTTP session

Enums§

PurgeStatus

Traits§

ProxyHttp
The interface to control the HTTP proxy

Functions§

http_proxy_service
Create a Service from the user implemented ProxyHttp.
http_proxy_service_with_name
Create a Service from the user implemented ProxyHttp.