If you have every had a need to forward requests for a page or an entire site to another server that is inaccessible to the outside world there is a strong chance you would have used Apache’s proxy ability.

Unfortunately some bright spark decided it was a fantastic idea to disable this by default and make sure that unless you have a strong understanding of debian / ubuntu, you are not going to get it to work easily. Sure this has security implications if misconfigured, but most people should have a genuine need.

When looking at the log files, the error that is normally displayed is

proxy: No protocol handler was valid for the URL

Unfortunately this is completely useless, and recommends loading more modules. The way that Apache is setup in Debian / Ubuntu it has the basic structure of /etc/apache2/mods-avaliable/ and /etc/apache2/mods-enabled/. The enabled directory contains symbolic links to the available directory. The quickest fix is running the following command as root.

ln -s /etc/apache2/mods-available/proxy_http.load /etc/apache2/mods-enabled/proxy_http.load
/etc/init.d/apache2/(restart/reload)

This will allow you to use proxy requests using apache with a configuration similar to below wrapped in a virtual host directive:

ServerAdmin email@domain.com
ProxyPass / http://10.0.0.2:8080
ProxyPassReverse / http://10.0.0.2:8080
ServerName virtualhost.domain.com