web proxy

httpd.apache.org/docs/1.3/mod/mod_proxy.html#examples

enable mod_proxy in /etc/apache/modules.conf:
LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so

create /etc/apache/conf.d/proxy:
Listen 8080
<VirtualHost *:8080>
  ProxyRequests On
  ProxyVia On
  NoCache *
  <Directory proxy:*>
     Order deny,allow
     Deny from all
     Allow from 12.34.56.78 localhost 87.65.43.21
  </Directory>
</VirtualHost>

configuring the proxy is not difficult, but if it doesn't work, testing it can be puzzling.

> telnet <proxyhost> 8080
GET http://www.google.com/ HTTP/1.1
Host: www.google.com


(end with two returns)

If you don't get a response that looks like a website, then it ain't working.

You can also test your client. Run this, on the proxyhost:
# apt-get install netcat
> nc -l -p 8080

This will spit out what the request looks like that your browser is making (assuming your browser is configured to use proxyhost:8080 as its proxy).

reverse proxy

..to be written...