Not only a forward and reverse proxy
DeleGate
DeleGate is just amazing, it is not only a very simple HTTP and SOCKS proxy, it also can redirect TCP Ports to a host in an other network or provide the content of a /etc/hosts file as DNS Server and much more. Here are a fews usage examples.
Simple HTTP reverse Proxy, caching behaviour can be controlled optionally
delegated -P80 SERVER=http://www.vtoc.de/
Forwarding a TCP (Postgres in this case) Port. This can be usefull, if you migrate the database to an remote host and you canot take the ip with you. An IP after -P tells delegate to bind that address only
delegated -P10.20.20.42:5432 SERVER=tcprelay://172.16.20.23:5432/
Tunnel a TCP connection thru a socks proxy
delegated -P10.20.20.42:5432 SERVER=tcprelay://172.16.20.23:5432/ SOCKS=proxyhost:port
Making an HTTPS only service available to HTTP clients
delegated -P80 SERVER=http MOUNT="/* https://httpshost/*" STLS=fsv:https
SSL proxy for ftp
delegated -P990 SERVER=ftps MOUNT="/* ftp://localhost/*" STLS=fsv
Standalone HTTP Server
delegated -P80 SERVER=http MOUNT="/* file:/var/www/html/*"
DNS Server from hosts file
delegated -P53 SERVER=dns RESOLV=file:/etc/hosts
DeleGate can do much more, like cronjobs or run as inetd server, best you look into the documentation.