Reverse Proxy in Ubuntu

by 1:08 PM 4 comments
The last few days I have spend some time setting up 2 new servers. One running Railo on Ubuntu and the other Coldfusion in Windows. I needed to host this on a single IP address and needed both machines available on the internet. There are 2 ways I know of that can accomplish this task 1. Using Microsoft ISA and 2 Using Apache as a reverse proxy. As I already have Apache up and running I went with option 2. While a seemingly trivial task I had never done this before and got hung up a few times the following are the steps I took:

Define the urls you want to re-direct to a different server:

  ProxyPass / http://myInternalDnsName/    ( or ip address )
  ProxyPassReverse / http:// myInternalDnsName /  (or ip address )
  ProxyPreserveHost on

ProxyPreserveHost keeps the host headers intact so the internal sever can still use virtual websites.
Enable the site ( debian/ubuntu specific )
A2ensite myReverseProxySites

Need some extra bits for apache:
apt-get install libapache2-mod-proxy-html
a2enmod proxy
a2enmod proxy_html
a2enmod headers
a2enmod proxy_connect
a2enmod proxy_balancer

Restart apache
/etc/init.d/apache2 restart

If something isn’t working start looking in the logs:
tail -f  /var/log/apache2/error.log

Paul Kukiel


Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.


  1. Can you set this up on Windows running Apache?

  2. @Damian

    Absolutely. It's just as easy on Windows.

  3. Hi, I am planning to do a similar task. Reverse proxy with apache on ubuntu server to win 3k3 server. What version of ubuntu did you use. Will I be better off deploying current ubuntu server 9.04 or use 8.04?

    And did the windows sites work ok?

  4. I used 8.04 at the time. 3 out of the 5 servers behind this proxy were Windows so the OS of the server behind the proxy doesn't matter.

    Since then I have moved this proxy to Apache on a Windows server it has been running faultlessly.