Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

An NGINX-alike HTTP reverse proxy in Go

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 reverseproxy
Octocat-spinner-32 .gitignore
Octocat-spinner-32 Makefile
Octocat-spinner-32 README.md
README.md

Description

GoReverseProxy is an HTTP reverse proxy (similar to a simpler version of NGINX) whose primary purpose currently is to multiplex incoming HTTP requests to different backend servers according to virtual host, and to safeguard against malicious HTTP requests (GoReverseProxy will likely break before allowing a backend server to break).

Features

  • Pipelining
  • Keepalive connections
  • Multiplexing by virtual hosts, specified in a config file
  • File-descriptor limiting
  • Connection timeouts

Maturity

I am running GoReverseProxy in production (albeit a small production) in front of my blog Population Algorithms and it has been working fine. The blog requests are generally pretty heavy (since they pull in a lot of resource files and things). Keepalive and pipelining have been working correctly.

Nevertheless, it is still early to say that GoReverseProxy is truly production-ready.

Installation

To install, simply run

git clone git://github.com/petar/GoReverseProxy.git GoReverseProxy-git
cd GoReverseProxy-git
make
make install

There is an example config file in the subdirectory reverseproxy which is simple and self-explanatory in JSON format.

About

GoReverseProxy is maintained by Petar Maymounkov.

Something went wrong with that request. Please try again.