En realidad yo no tengo mucha experiencia con Linux, pero si bastante con el Apache bajo Windows
Partamos de la base que Apache puede alojar mas de un Host adem?s del que corre bajo el servidor principal y todos con una sola IP.
Por defecto en la m?quina que corre Apache 127.0.0.1 equivale a nuestro
http://localhost en el puerto 80, ahora bien eso es v?lido porque tanto en linux como en windows existe un archivo de hosts con la linea
127.0.0.1 localhost
este archivo de hosts act?a de alguna manera como servidor DNS para la m?quina local
Para que esto resulte m?s f?cil de entender, asumamos que tu m?quina esta actuando sola, sin estar integrada en red alguna, por ahora
vamos a agregar hosts al httpd.conf, aparte de cargar los modulos necesarios necesitamos
NameVirtualHost 127.0.0.1
### dominio_uno
<VirtualHost 127.0.0.1>
ServerName
www.dominiouno.com ServerAlias dominiouno.com
DocumentRoot "C:/users/webs/dominiouno/htdocs"
ServerAdmin
info@dominiouno.com ErrorLog "/Apache2/logs/error.txt"
CustomLog "/Apache2/logs/dominiouno_access.txt" combined
<Directory "C:/users/webs/dominiouno.com/htdocs/">
Options FollowSymLinks MultiViews +ExecCGI +Includes
AllowOverride all
Order allow,deny
Allow from all
</Directory>
AddType application/x-httpd-php .php
</VirtualHost>
### dominio_dos
<VirtualHost 127.0.0.1>
ServerName
www.dominiodos.com ServerAlias dominiodos.com
DocumentRoot "C:/users/webs/dominiodos/htdocs"
ServerAdmin
info@dominiodos.com ErrorLog "/Apache2/logs/error.txt"
CustomLog "/Apache2/logs/dominiodos_access.txt" combined
<Directory "C:/users/webs/dominiodos.com/htdocs/">
Options FollowSymLinks MultiViews +ExecCGI +Includes
AllowOverride all
Order allow,deny
Allow from all
</Directory>
AddType application/x-httpd-php .php
</VirtualHost>
Si agregamos a nuestro archivo de hosts
127.0.0.1 www.dominiouno.com
127.0.0.1 dominiouno.com
127.0.0.1 www.dominiodos.com
127.0.0.1 dominiodos.com
la url
http://localhost nos llevara a la p?gina de inicio del servidor principal, la que suele contener
?Funcion?! ?El Servidor de Red Apache ha sido instalado en ese sitio!....bla bla
en tanto que
http://www.dominiouno.com y
http://dominiouno.com tendr?n como documento ra?z al directorio "C:/users/webs/dominiouno/htdocs"
Puedes hacer esto con numerosos VirtualHosts, y ser?n navegables desde la PC que tiene instalado y corriendo el Apache, ojo, esta no es la unica manera, podr?as por ejemplo, asignar diferentes IP (127.0.0.2, 127.0.0.3 etc) siempre y cuando agregues los correspondientes
NameVirtualHost para cada Host Virtual y agregues las entradas respectivas en el archivo de Hosts, otra variante interesante es esta
<virtualhost *>
DocumentRoot "C:/users/webs/midominio2.com/htdocs"
VirtualDocumentRoot "C:/users/webs/midominio2.com/subdomains/%1"
#LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common
#CustomLog "/users/webs/midominio2.com/subdomains/subdominios_log.txt" vhost_common
ErrorLog logs/error_subdominios.txt
LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
CustomLog logs/subdominios_log.txt vcommon
<Directory "C:/users/webs/midominio2.com/subdomains/">
Options FollowSymLinks MultiViews +ExecCGI +indexes
AllowOverride all
Order allow,deny
Allow from all
</Directory>
AddType application/x-httpd-php .php
</VirtualHost>
LA configuraci?n de arriba me permite que cualquier directorio creado debajo del nivel de C:/users/webs/emprear.com/subdomains, se convierte automaticamente en un subdominio de midominio2.com, lo que puede resultar muy practico si quiero permitir a un usuario crear subdominios via FTP.
Ahora vamos a integrar la m?quina con Apache a una red de 2PCs en una Intranet, por lo que asignaremos IP est?ticas en forma manual
192.168.0.1 para la que ejecuta Apache y 192.168.0.2 para la que intentar? navegar los virtualhosts en 192.168.0.1
Por lo que he entendido de tu post, tu llamas "peticiones del exterior" serian las que se hacen desde esa segunda PC, o una 3? y 4?, etc.
Cuando en el navegador de la PC 2 tipeas
http://www.dominiouno.com, lo primero que intentar? el IExplorer es resolver el DNS para ese dominio, podrias especificar que para la PC2 el servidor DNS esta en 192.168.0.1(en las propiedades de la Red), con lo cual usar?a el archivo de hosts de la PC1, obviamente al buscar IPs del tipo 127.0.0.1 127.0.0.2 etc apuntar?a a si misma y no encontrar?a las webs, s?lo podrias navegar por
http://192.168.0.1 Pero el sentido de todo esto es encontrar DOMINIOS
Aqui la soluci?n primera ser?a crearte tu propio servidor DNS (es algo mas complejo y s?lo lo he hecho bajo windows)
La segunda , redefinir las direcciones del archivo de hosts de la PC1 como
192.168.0.1 www.dominiouno.com
192.168.0.1 dominiouno.com
192.168.0.1 www.dominiodos.com
192.168.0.1 dominiodos.com
y modificar obviamente el httpd.conf
El concepto es que el navegador debe encontrar un Servidor DNS o un archivo de hosts que actue como tal, que a trav?s de este encuentre la IP sobre la que Apache se esta ejecutando, y una vez que Apache toma el control redirige al DocumentRoot apropiado para el VirtualHost
Hay una tercera soluci?n, que es la que yo pongo en pr?ctica y es utilizar Apache como proxy,
en mi Apache la config para esto es la siguiente
asegurate de cargar los siguientes modulos (puede que alguno este demas pero Apache2 hizo algunos cambios respecto 1.3x y todavia