Goal : Use lots of different Tor proxies for multi-threaded requests and concurrency...
How it works : runit manages many instances of Tor. HAproxy is used to distribute requests in a round-robin fashion.
<-> Tor proxy 1
Client <----> HAproxy <-> Tor proxy 2
<-> Tor proxy n
Why is this one different? : Lightweight (16mb) Alpine docker image, doesn't use Ruby, low memory requirements, uses runit
for process management. Doesn't provide a HTTP proxy.
A Makefile
is provided to manage the Docker container's lifecycle. Be wary, make clean
will not be friendly to other Docker containers running on the same machine, it will aggressively purges unused containers and images.
make
make run
make stop
Other implementations :
- https://github.com/mfasanya/docker-tor-rotator (Ubuntu base)
- https://github.com/vdaubry/tor-privoxy (uses Ruby, not Docker-ized)
- https://github.com/srounet/docker-tor (Ubuntu base, uses Ruby)
- https://github.com/Negashev/docker-haproxy-tor (Alpine base, uses Ruby)
Early inspiration :