Skip to content
Performant Content Modifying Non-Caching Proxy [stable - accepting patches for bug fixes only]
Branch: master
Clone or download
root
Latest commit 5dc7327 Nov 21, 2016
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
QA add reqmod test data Sep 14, 2016
etc fix status code Feb 12, 2016
lib/exaproxy
sbin
scripts simplify version Aug 20, 2014
service fix setup.py Sep 16, 2016
.gitignore
.pylintrc
.scrutinizer.yml add scrutinizer Jan 11, 2015
CHANGELOG
COPYRIGHT
README.FIRST
README.md
ROADMAP udpate roadmap Jul 7, 2013
setup.py fix setup.py Sep 16, 2016

README.md

ExaProxy

ExaProxy is a a high-performance non-caching proxy. It is able to filter HTTP traffic using your favorite programming language.

It is part of Exa Networks' SurfProtect solution.

Exaproxy is used in production since early 2013, and proxies millions of URL per day, one installation sees Gb/s of HTTP traffic, with hundreds of Mb/s per server, and several tens of thousands of connections per machine, but this does not mean our work is finished. We continue to improve it.

News

August 21st 2014, released ExaProxy 1.2.1

Features

  • Non-caching HTTP/HTTPS (with CONNECT) Proxy
  • forward, reverse or transparent proxy
  • IPv6 and/or IPv4 support (can act as a 4to6 or 6to4 gateway)
  • High Performance
  • Working with the "upcoming" web services
    • support for unknown HTTP versions
    • websocket and TLS support (Upgrade header support)
  • Traffic interception
  • Support for HAProxy proxy protocol
  • Built-in web servers to monitor the proxy via local webpage ( default http://127.0.0.1:8080 )
    • dynamic configuration change
    • running information in json format (/json)

Usage

Start ExaProxy on your local machine and point your browser to 127.0.0.1 port 8000

More Information

Keep up to date, follow twitter or the google community

ExaProxy was born out by necessity. No other open source proxy has the same features RFC compliance

This presentation explains why other solutions were not suitable.

Development is done on python 2.7. This program has no dependencies on third party libraries and will run out of the box on any Unix system.

Tested with Co-Advisor. We are failing HTTP/1.0 conversion requirement and responses modifications (which we do not support as we assume that both the client and server are valid HTTP/1.1 implementation).

Get it

> wget https://codeload.github.com/Exa-Networks/exaproxy/tar.gz/1.2.1
> tar xzvf 1.2.1
> cd exaproxy-1.2.1
> ./sbin/exaproxy

will give you a working proxy on port 3128

> ./sbin/exaproxy -h

will give you a definition of all the configuration options

> env exaproxy.tcp4.port=8088./sbin/exaproxy -de

exaproxy.tcp4.port='8088'

or

> export exaproxy_tcp4_port=8088
> ./sbin/exaproxy -de

exaproxy.tcp4.port='8088'

To change from the command line and see what options were changed from their default configuration values in the configuration file.

You can’t perform that action at this time.