Q:

Setup servers to be visible in the internal network in different subdomains

I an Ubuntu a server in my local network where I have two servers running.  I can access the servers from a different computer in the network like this: http:// serverpc.local:8081 and http:// serverpc.local:443. 
I want to set up the server-pc so that I can access my two servers running on the server-pc like this: http:// site1.serverpc.local and http:// site2.serverpc.local.  Note that serverpc is the hostname of the server machine. 
After some research, I found that I should set up a DNS server on the server machine and then use virtualhost with apache to reverse proxy http:// site1.serverpc.local to http: //serverpc.local:8081 somehow.  Bear in mind that I want to access the servers from a different computer in the LAN. 

A:

Don't bother with reverse proxy... just set up two <VirtualHost> instances in Apache.  You can use a simple DNS server like dnsmasq on the Ubunutu server.  Edit the /etc/hosts file to have two entries (assuming serverpc is 169.254.10.10):
169.254.10.10 serverpc.local site1.serverpc.local site2.serverpc.local

Then define two VirtualHosts in Apache something like this:
<VirtualHost *:80>
 ServerName site1.serverpc.local
 DocumentRoot "/some/path1"
</VirtualHost>
<VirtualHost *:80>
 ServerName site2.serverpc.local
 DocumentRoot "/some/path2"
</VirtualHost>

This is a very high-level overview but it may help you get started.