Apache as a reverse proxy
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”