Version: v0.0.0-...-96203a7 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: May 20, 2017 License: MIT Imports: 21 Imported by: 0



An HTTP proxy package for intercepting, modifying traffic and forwarding it via a reverse proxy server (like HAproxy).

This package is extended upon Full functionality of it can access through GoProxy variable, But ctx.UserData must not be altered. And glog library for logging.

It publishes Request.Host, reverse-proxy-server and retured status-code for bad status on a redis Channel. It uses fluentd for dumping http requests and responses in json or raw wire format. And Exposes rudimentary metrics via Prometheus client library.



This section is empty.


View Source
var (
	// New goproxy server. Functionality of goproxy can access throgh this variable but ctx.UserData must not be altered.
	GoProxy = goproxy.NewProxyHttpServer()

	// Instance of Config struct
	Conf = new(Config)


func Proxy

func Proxy(redispool *redis.Pool, fluent *fluent.Fluent)

Impletments proxy functionality. If fluent is nil, then doesn't dump http request and response. If redispool is nil, then doesn't publish on redis Channel for bad status. It adds a uuid to request, to bind it to corresponding response and send it to client as a header on response.


type Config

type Config struct {
	// Redis channel to be published json message containing Request.Host, sender-proxy and retured statuscode for bad status (400 <= StatusCode <= 599).
	RedisControllerChannel string

	// Forward traffic to it (only HTTP Scheme is supported) and must not be empty.
	ReverseProxyServer url.URL

	// Running proxy on this port and must not be empty.
	ProxyPort int

	// Exposing metrics on this port and must not be empty.
	MetricPort int

	// Enabling verbosabilty on underlying goproxy library.
	Verbose bool

	// If true, Dumps http request and response in wire format else in human readable format.
	DumpInWireFormat bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL