Fattylewis.com
Buy VPN

Apache as a reverse proxy

31 Jan 2015

Instead of opening a bunch of ports to my home network, i figured it was easier to setup a reverse proxy for all the servers in my home. Heres a quick run down on how to do it.

First we have to enable the proxy modules in apache then restart apache.

sudo ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled

sudo ln -s /etc/apache2/mods-available/proxy_http.load /etc/apache2/mods-enabled

sudo /etc/init.d/apache2 restart

Once that is complete we need to create the apache config we will be using.

sudo vim /etc/apache2/sites-available/proxiedhosts

Here is an example of one host in my network, you need to add your hosts like this.

<VirtualHost *:80>
ServerName test.home.x.me
ProxyPass / http://192.168.x.x/
ProxyPassReverse / http://192.168.x.x/
<Proxy http://192.168.x.x/>
Order Allow,Deny
Allow from all
</Proxy>
</VirtualHost>

All you need to do is change the “ServerName” to that of the address you are coming in to and obviously the IP address.

There are a couple of situations where you need to additional options, running JIRA behind a reverse proxy is one of them. Here is a copy of my JIRA proxy config.

<VirtualHost *:80>
ServerName jira.home.*.me
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://192.168.*.*:8080/
ProxyPassReverse / http://192.168.*.*:8080/
<Proxy http://192.168.*.*:8080/>
Order Allow,Deny
Allow from all<
</Proxy>
</VirtualHost>

Note that additional “ ProxyRequests Off” and also the “ProxyPreserveHost On”

Tweet me @fatty_lewis if you like this post.

Tweet
comments powered by Disqus