Maker tech hub — AI · 3D print · Pi · ESP32 · plus the classic tech archive.

Free ESP32 kit · Books · Network Ninja · Archive

Classic tech archive. From the original averyjparker.com tech blog — historical context; pair with modern guides where noted. Full archive · Maker projects · Network Ninja

Classic tip · Linux

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 p…

Written by

Avery J. Parker

IT veteran, maker educator, and author of Network Ninja, 3D Printing Mastery, and AI Workflow Mastery. Business IT: Diversified Tech Solutions.

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.