package
0.0.0-20240618122647-caea5ba97000
Repository: https://github.com/mbrukman/notebook.git
Documentation: pkg.go.dev

# README

Proxy

This is a simple reverse HTTP proxy, which you can run in front of several servers to enable routing to backends based on URL patterns. The primary use case it enables is running our API server (Go) and UI server (Node) behind a single URL, so that APIs are easily accessible from the UI as they are served from the same origin.

This lets us easily mimic our (expected) production environment during development.

Install

If you're using Go 1.11 or 1.12, you need to set this environment variable first:

$ export GO111MODULE=on

Then, install the proxy as follows:

$ go get -u github.com/mbrukman/notebook/web/proxy

This will install the binary in $GOPATH/bin; $GOPATH defaults to $HOME/go if not set.

Run

Assuming $GOPATH/bin is in your $PATH, you can run it as follows:

$ proxy -config config.yml

Run proxy -help to see the complete list of available flags; in particular, you may want to set one or more of the following:

  • -host [host] – empty string or 0.0.0.0 will make the proxy accessible from other hosts; localhost or 127.0.0.1 (default) will make the proxy only accessible from the same machine as the proxy, for security reasons. The proxy will print at start time the host it's listening on.

  • -port [number] – change the port on which the proxy will listen; 9000 is the default. The proxy will print at start time which port it's listening on.

# Functions

ParseConfig loads the config stored in the provided file and returns a config object.

# Structs

ConfigError is returned while parsing or loading an invalid config.
Proxy represents the runtime state of the reverse proxy.
ProxyConfig represents the set of routes for the reverse proxy.
Route represents a single pair (URL path prefix, target).