

Furthermore, it was designed with an eye towards preventing buffer overflows. With a bit of configuration (specifically, making Tinyproxy created files owned by a non-root user and running it on a port greater than 1024), Tinyproxy can be made to run without any special privileges, thus minimizing the chance of system compromise. You can configure Tinyproxy to control access by only allowing requests from a certain subnet, or from a certain interface, thus ensuring that random, unauthorized people will not be using your proxy. Using the remote monitoring facility, you can access proxy statistics from afar, letting you know exactly how busy the proxy is. This allows you to restrict both what data comes to your web browser from the HTTP server (e.g., cookies), and to restrict what data is allowed through from your web browser to the HTTP server (e.g., version information). Tinyproxy has privacy features which can let you configure which HTTP headers should be allowed through, and which should be blocked.

As such, it can be used as a foundation for anything you may need a web proxy to do. The source is straightforward, adhering to the KISS principle. If you're looking to build a custom web proxy, Tinyproxy is easy to modify to your custom needs. Using the AddHeader directive, you can add/insert HTTP headers to outgoing traffic. You can also use it as a reverse proxy front-end to your websites. Tinyproxy supports being configured as a transparent proxy, so that a proxy can be used without requiring any client-side configuration. Tinyproxy allows forwarding of HTTPS connections without modifying traffic in any way through the CONNECT method (see the ConnectPort directive). It can use additional libraries to add functionality though. Tinyproxy requires only a minimal POSIX environment to build and operate. Thus, Tinyproxy can be run on an older machine, or on a network appliance such as a Linux-based broadband router, without any noticeable impact on performance.

The memory footprint tends to be around 2 MB with glibc, and the CPU load increases linearly with the number of simultaneous connections (depending on the speed of the connection). Tinyproxy has a small footprint and requires very little in the way of system resources. Tinyproxy is distributed using the GNU GPL license (version 2 or above). Designed from the ground up to be fast and yet small, it is an ideal solution for use cases such as embedded deployments where a full featured HTTP proxy is required, but the system resources for a larger proxy are unavailable. Tinyproxy is a light-weight HTTP/HTTPS proxy daemon for POSIX operating systems.
