/rotating-proxy

Rotating TOR proxy with Docker

Primary LanguageRubyThe UnlicenseUnlicense

docker-rotating-proxy

               Docker Container
               -------------------------------------
                        <-> Polipo 1 <-> Tor Proxy 1
Client <---->  HAproxy  <-> Polipo 2 <-> Tor Proxy 2
                        <-> Polipo n <-> Tor Proxy n

Why: Lots of IP addresses. One single endpoint for your client. Load-balancing by HAproxy.

Usage

# build docker container
docker build -t mattes/rotating-proxy:latest .

# ... or pull docker container
docker pull mattes/rotating-proxy:latest

# start docker container
docker run -d -p 5566:5566 -p 1936:1936 --env tors=25 mattes/rotating-proxy

# test with ...
curl --proxy 127.0.0.1:5566 http://echoip.com
curl --proxy 127.0.0.1:5566 http://header.jsontest.com

# monitor
http://127.0.0.1:1936/haproxy?stats

Further Readings


Please note: Tor offers a SOCKS Proxy only. In order to allow communication from HAproxy to Tor, Polipo is used to translate from HTTP proxy to SOCKS proxy. HAproxy is able to talk to HTTP proxies only.