Virtual Server on Apache to listen on an alternate port
In the last few days, I had to set up something a bit unusual with apache. Basically the goal was to have apache listen for connections on two different ports (the standard port 80 and an alternate port 85). The problem was that I wanted different content at each port. Port 85 was to be an .htaccess redirect for another domain (with some port forwarding magic at the firewall.) Port 80 was to remain an internal intranet page. So…. this was all done with vhosts (virtual hosts.)
The previous setup had been apache for port 80 and thttpd for port 85, but there were disadvantages with that setup (thttpd didn’t support .htaccess redirects that I could see and that solution had to resort to a redirect in an html page which wasn’t as clean a redirect.) On the Mandrake based server it was fairly simple…. in /etc/httpd/2.0/conf/vhosts/Vhosts.conf I had to setup the virtual host settings (default directory/address/port to bind…)
NameVirtualhost 192.168.5.20:85
<VirtualHost 192.168.5.20:85>
Servername myserver2.lan.net
DocumentRoot /var/www/html/redirect
</VirtualHost>
And in /etc/httpd/2.0/conf/httpd2.conf, I had to add port 85 to be listened to (and uncomment the include of the Vhost file…)
Include conf/vhosts/Vhosts.conf
<IfDefine !APACHEPROXIED>
#Removed by Apache 2.0 — Port 80
Listen 80
Listen 85
</IfDefine>
There’s a good writeup at apacheweek on virtual hosts and configuring them based on ip address and port.