Servidor web, una IP, dos dominios:sólo funciona en intranet

Hola,

Tenemos un servidor apache gestionando varios dominios con la misma IP.

Funciona perfectamente en intranet pero no cuando accedemos desde fuera, desde Internet.

Algo en la configuración de nuestro Router 660 no está bien y por eso sólo somos capaces de ver la página del primer dominio que aparece en nuestro httpd.conf (el archivo de configuración del apache)

Hemos seguido los pasos de http://www.adslzone.net/tutorial-12.6.html pero no es suficiente: no para gestionar varios dominios con la misma IP.

La situación es esta:
- Accediendo desde la intranet vemos las páginas de todos los dominios sin ningún problema: es decir, nuestro apache funciona y está bien configurado.
- Accediendo con un módem a esos mismos dominios siempre aparecen las páginas del primero de ellos, que coinciden con las páginas que aparecen si ponemos la IP directamente en el navegador.

¿Alguna idea, sugerencia?

Gracias, un saludo

PD: La conexión que tenemos es de telefónica.
 
Dos dominios, una misma IP... puede ser aunque no me parece normal.

Una misma IP, dos páginas web distintas... imposible!

Sólo es posible si se accede a ellas desde puertos distintos.
 
Apache lo permite

Gracias Borlafu, pero...

Si lees la documentación del servidor web apache en http://httpd.apache.org/docs/2.0/vhosts/

Pone textualmente:

"El término Hosting Virtual se refiere a hacer funcionar más de un sitio web (tales como www.company1.com y www.company2.com) en una sola máquina. Los sitios web virtuales pueden estar "basados en direcciones IP", lo que significa que cada sitio web tiene una dirección IP diferente, o "basados en nombres diferentes", lo que significa que con una sola dirección IP están funcionando sitios web con diferentes nombres (de dominio)"

Y funciona. Con una sóla IP, tienes un servidor web que gestiona varios dominios diferentes, todos en el puerto 80

Y eso nos funciona a nosotros en la intranet -red local- pero no cuando accedemos desde "fuera del router", desde Internet.

Sabemos que el router está "filtrando" -eliminando- parte de la información que envían los navegadores cuando solicitan una página y por eso nuestro servidor apache responde siempre enviando la página del primer dominio virtual que aparece en nuestro httpd.conf

Gracias, un saludo
 
Un momento,

Imaginate que tus dos dominios son "dom1.com" y "dom2.com". Supongamos que ambos comparten la misma dirección IP (digamos que es 1.2.3.4).

Si desde nuestro navegador web solicitamos el acceso a cualquier de las dos páginas, se realiza lo siguiente:

Se solicita al DNS la traducción de "dom1.com" o la de "dom2.com" (según el caso) y te devolverá indistintamente la dirección 1.2.3.4. Llegado a este punto ya no se distingue entre un dominio y el otro.

Se hace una petición "GET / HTTP/1.0" por protocolo HTTP sobre TCP a la dirección 1.2.3.4 en el puerto 80 (por defecto para el navegador web).

¿Me puedes explicar cómo diantres es capaz tu servidor web de distinguir qué página web le están solicitando?

NO PUEDE.


Edito:

La he cagado: en las cabeceras de HTTP 1.1 sí se incluye el nombre de host. :oops:

Puede deberse a que intentes acceder a la web desde un navegador viejo, no creo que sea cuestión del router, porque también filtraría el trafico interno. Lo siento por haber sido tan brusco antes :cautious:
 
En efecto, lo único que tienes que hacer es que en el DNS, la petición al dominio apunte a la dirección IP de tu servidor donde tienes todos los dominios.

Yo he configurado Ubuntu 16.04 LTS como servidor web para varias paginas en la intranet bajo el mismo dominio y esa es la manera. en la DMZ apunta todos los dominios a la IP del server (Si, todos a la misma) el servidor es el que se encarga de distinguir cual es cual. OBVIAMENTE PREVIO hiciste la configuración de VirtualHosts.
 
Un momento,

Imaginate que tus dos dominios son "dom1.com" y "dom2.com". Supongamos que ambos comparten la misma dirección IP (digamos que es 1.2.3.4).

Si desde nuestro navegador web solicitamos el acceso a cualquier de las dos páginas, se realiza lo siguiente:

Se solicita al DNS la traducción de "dom1.com" o la de "dom2.com" (según el caso) y te devolverá indistintamente la dirección 1.2.3.4. Llegado a este punto ya no se distingue entre un dominio y el otro.

Se hace una petición "GET / HTTP/1.0" por protocolo HTTP sobre TCP a la dirección 1.2.3.4 en el puerto 80 (por defecto para el navegador web).

¿Me puedes explicar cómo diantres es capaz tu servidor web de distinguir qué página web le están solicitando?

NO PUEDE.


Edito:

La he cagado: en las cabeceras de HTTP 1.1 sí se incluye el nombre de host. :oops:

Puede deberse a que intentes acceder a la web desde un navegador viejo, no creo que sea cuestión del router, porque también filtraría el trafico interno. Lo siento por haber sido tan brusco antes :cautious:


SI PUEDE:
Porque previamente configuraste el VIRTUALHOST apuntando cada petición a distinto dominio, pero en la DMZ debes apuntar todos los dominios por ejemplo:

www.dominio1.com 192.168.3.25
www.dominio2.com 192.168.3.25
www.dominio3.com 192.168.3.25

Todas las peticiones llegan a la IP 192.168.3.25 Que es la del servidor. El servidor para interpretar CUAL ES CUAL. LO HACE MEDIANTE CONFIGURACIÓN DE VIRTUALHOSTS. En el caso de Linux tienes que editar el archivo /etc/hosts . Y el archivo de apache config extra declaras todos esos virutalhosts y a la carpeta física que accede cada uno.
 
pero si colocas en el browser la dirección //192.168.3.25 ¿cual pagina web se cargará? No sabe!!
 
Arriba