Como tener varias webs alojadas en el mismo servidor con una misma ip y varios dominios a la vez con Apache 2.2

Aqui no se va a explicar como crear un servidor web con Apache, ni como redireccionar un dominio a un IP, esto se supone que ya lo traeis de casa.

Lo que se va a explicar es como en una misma maquina con una sola ip y con el servidor WEB Apache, es posible tener alojadas varias webs y cada una de ellas con un dominio diferente. Eso se llama “virtual host”.

Una vez tenemos instalado el servidor web Apache 2.2, todo lo que metamos en la carpeta www sera visible por el puerto 80, bien sea un index de una web, imagenes o documentos.

La gracia viene cuando queremos agregar mas webs y mas dominios apuntando a la misma direccion IP, ¿como hacer que el Apache se entere de que pagina queremos que muestre? Os lo voy a explicar de forma muy sencilla, con un ejemplo practico.

Mi servidor tiene la IP 91.126.223.73, esto no es un secreto, si haceis ping a www.mur3.com desde una ventana MS-DOS os respondera, y si la introducis en el navegador os lleva a www.mur3.com.
Tengo instalado Apache 2.2, en el raiz de la carpeta www estan los ficheros del blog www.mur3.com, hasta aqui todo muy sencillo. El dominio www.mur3.com esta configurado en 1and1 como DNS, lo podeis ver mejor en la siguiente imagen:

Como DNS principal esta la IP fija EXTERNA de mi servidor. Por la parte del dominio lo tenemos todo correcto.
Supongamos que tenemos otro dominio, por ejemplo www.minuevaweb.com, en 1and1 tambien. El proceso de configuracion es igual al de mur3.com, como DNS apuntando a la IP fija EXTERNA de nuestro servidor.

IMPORTANTE: Yo estoy usando 1and1 como proveedor de dominios, entiendo que en otro proveedor cualquiera de dominios esta configuracion se pueda hacer, tiene que permitir que el dominio X se configure como DNS apuntando a nuestra IP externa, nada mas.

Como todo tiene que estar dentro de la carpeta www, supongamos que tenemos este arbol de directorios:

Carpeta WWW, dentro de ella, los ficheros de la web “original” mur3.com, y una carpeta llamada minuevaweb. Dentro de la carpeta minuevaweb, tendremos el index.htm y demas ficheros de la web. ¿Hasta aqui bien no? Tenemos una web dentro de otra. Yo por ejemplo tengo una carpeta dentro del www, que se llama hosting, y dentro de ella voy creando las carpetas para los diferentes proyectos web que voy fabricando.

Ahora toca modificar los ficheros de configuracion del Apache, ojo, yo instalo el paquete Appserv, pero el Apache se modifica y se trabaja igual que si lo instalais por su cuenta, tenerlo en cuenta para las rutas.

1.- Buscamos el httpd.conf en la siguiente ruta -> C:\AppServ\Apache2.2\conf
2.- Abrimos con Wordpad para editar
3.- Buscar estas dos lineas:

# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

DESCOMENTAR la segunda linea, que queden asi, sin la #:

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

4.- Guardar los cambios del fichero httpd.conf, esto que acabamos de hacer es para cargar un modulo en el Apache llamado httpd-vhosts.conf, que es lo que nos permite hacer lo que os estoy explicando, el cual vamos a editar con nuestra configuracion ahora.
5.- Buscar el fichero httpd-vhost.conf en la siguiente ruta: C:\AppServ\Apache2.2\conf\extra
6.- Abrimos con Wordpad para editar, si leemos lo que pone al principio veremos que es exactamente lo que estamos buscsando hacer:

#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn’t need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.

Una vez abierto vamos al final del fichero, vereis esto:

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.x
    DocumentRoot “C:/Apache2.2/docs/dummy-host.x”
    ServerName dummy-host.x
    ServerAlias www.dummy-host.x
    ErrorLog “logs/dummy-host.x-error.log”
    CustomLog “logs/dummy-host.x-access.log” common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.x
    DocumentRoot “C:/Apache2.2/docs/dummy-host2.x”
    ServerName dummy-host2.x
    ErrorLog “logs/dummy-host2.x-error.log”
    CustomLog “logs/dummy-host2.x-access.log” common
</VirtualHost>

No os asusteis, que no escupen, si leeis y comprendeis lo que pone, vereis que son ejemplos de como configurar multiples host virtuales. Aprovechamos la estructura ya que lo que tenemos actualmente son dos webs, pues os tendria que quedar asi segun los datos que os he ido comentando mas arriba:

<VirtualHost *:80>
    ServerAdmin administrdor@mur3.com
    DocumentRoot “C:/Apache2.2/www”
    ServerName mur3.com ->
    ServerAlias www.mur3.com
    ErrorLog “logs/mur3”
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin administrador@minuevaweb.com
    DocumentRoot “C:/Apache2.2/www/minuevaweb”
    ServerName minuevaweb.com
    ErrorLog “logs/minuevaweb”
</VirtualHost>

Guardais el fichero httpd-vhost.conf, reinicias el Apache o reinicias la maquina y todo deberia de funcionar correctamente, al poner www.mur3.com, apareceria el contenido de www y al poner www.minuevaweb.com, apareceria el contenido de www/minuevaweb. Si teneis 3 webs, pues tres de estos, si teneis 4 pues 4, y asi hasta los que querais.

¿Que conseguimos con esto? Una redireccion bien hecha, ya que sino, la tipica solucion es apuntar a la direccion completa directamente, por ejemplo, www.minuevaweb.com, si la configuramos a lo cutre apuntaria a www.mur3.com/www/minuevaweb y en la barra de navegacion apareceria esta ruta asquerosa, de esta forma lo estamos haciendo correcto y evitando que “se sepa” donde esta alojada nuestra web realmente.

Dudas sobre esto, ya sabeis, en los comentarios se os ayudara en la medida de lo posible.

 

Seguro que te interesa:

You can leave a response, or trackback from your own site.

14 Responses to “Como tener varias webs alojadas en el mismo servidor con una misma ip y varios dominios a la vez con Apache 2.2”

  1. Es espectacular. por favor, tu me podrías decir como lo hago con un ubuntu server. por favor ayuda si.

    Mil gracias por tu artículo, me sirve mucho. Te felicito

    Fabio Jaramillo
    Ipiales – Colombia

  2. sysLP dice:

    tengo un problema que supongo tiene algo que ver con esto, lo describo a continuacion… tengo un servidor web en linux (centos 5) en el cual alojo una web que puede visualizarse localmente de la siguiente manera: http://192.168.1.100/pagina-web y otra pagina de administracion web que tambien la visualizo de la misma forma: http://192.168.1.100/administracion-web. Todo lo anterior a traves del servidor apache en centos. Tengo otro servidor que es un windows y aloja tambien dos paginas: http://192.168.1.190/web1 y la otra pagina http://192.168.1.190/web2.

    Aqui el dilema: necesito que se vean las 4 paginas como si fueran URLs independientes, el detalle es que tengo un servidor DNS interno, 192.168.1.250 x ejm. (ubuntu server) A través del cual se traducen las paginas internas, y cuentan con un dominio por ejm: midominiolocal.net, con lo cual las paginas desde este mismo servidor pueden verse de la siguiente manera:

    web1.midominiolocal.net
    web2.midominiolocal.net
    web3.midominiolocal.net

    y así las demás paginas, yo quisiera q los otros 2 servidor web registren sus paginas de la misma forma, pero no encuentro la forma de hacerlo, ya que si en el DNS yo registro la ip de cualquier servidor web, no sabria cual de las 2 paginas web desearia ver realmente…

    Alguien sabe como podria solucionar este detalle??? espero puedan ayudarme. Gracias

  3. Pablo dice:

    Amigo exelente! pero tengo un problema, tienes un tutorial donde enseñes a como configurar el DNS, IP y el DOMINIO (.cl) con APPSERVER ? ya que no se como hacerlo!!
    Compre el dominio y me pide un NS y la IP, la IP la tengo pero no se como generar el NS y que luego cuando una persona teclee el DOMINIO me redireccione a la carpeta WWW del appserver……. Te estaria muy agradecido! Saludos Cordiales!

    • MuR3 dice:

      Hola Pablo.

      Vamos por partes.

      1.- ¿Tienes una IP fija? Sino es asi, olvidate de todo esto, o lo tienes que hacer con no-ip o servicios similares que no son nada recomendables ya que dependes de un tercero.

      2.- Si tienes una IP fija, lo unico que tienes que hacer para que el domino comprado tudominio.cl apunte a tu carpeta www del Appserv es configurarlo en donde compraste el dominio. En mi caso, en 1and1, el DNS que apunta al dominio es la propia IP fija que yo tengo contratada con mi ISP.

      No tiene mas misterio.

      Un saludo.

      • alejandro dice:

        por favor ayuda.

        tengo mi ip publica fija en un ISP, tengo un dominio registrado, tengo un equipo con centos 6.4 que recibe directamente la ip (no tengo firewall, solo el del SO). Actualmente puedo acceder a mi carpeta www así: http://201.x.x.x/mipagina pero quisiera saber qué necesito para que, con lo que tengo, pueda acceder así: http://www.mipagina.com Esto por que no sé si necesito configurar en mi servidor el servicio de DNS, al parecer también me falta registrar mi ip en en algún servicio de DNS’s , o no sé si de esto se encarga la empresa donde compre el dominio. Gracias por su ayuda, o no se si me puedan recomendar alguna pagina para consultarlo. Gracias.

  4. Hola, buenas tardes
    Yo tengo instalado appserver y puedo desde la web usando mi ip publica entrar a mi pagina web.
    El año pasado tenia xp y usaba el IIS y configure el sitio web ahi y mi dominio .com funcina perfecto.
    Me podrias ayudar indicandome como hago para que cuando yo digite http://www.micpagina.com acceda y no tengo que solo colocar mi ip publica

  5. Vic Mendoza dice:

    Hola,

    No me quedo muy claro, tengo tambien un hosting en 1and1.com y quiero tener acceso a viedmaster.com y luego mas paginas sitio1, sitio2,sitio3, etc.

    Como se hace esto???

    Salu2 Cordiales,

    Vic.

  6. danielnst dice:

    Hola y muchas gracias por tomar tu tiempo en ayudar a los demás.
    Mi pregunta es fácil. El caso práctico que me ocupa es similar al que explicas, con la particularidad de que mis dos webs se alojan en dos servidores diferentes dentro de mi LAN. La ip externa para acceder a estas dos webs sería la misma. Una web sería un dominio y la otra un subdominio. Esto que necesito hacer es posible?
    Saludos y muchas gracias

  7. alejandra dice:

    hola una pregunta tengo dos dominios ya los compre e hice q esten con el mismo ip pero cuando hago toda la confiiguracion q dijiste al poner los nombres se van a una sola pagina a la primera q hice no se si me puedes ayudar a arreglar o cual sera el error

  8. Lenin Ocaña dice:

    buenas tardes, tengo el mismo caso que tú, dominios contratados con 1&1, IP Publica, servidor apache y requiero publicar dos sitios apuntando al mismo servidor pero a distinta carpeta dentro de apache.

    Lo que veo en tu tutorial es que desde 1&1 apuntas el DNS a la IP Pública de tu servidor, pero para esto tienes algun servidor DNS configurado? o solo apuntas asi?

    Yo he intentado configurando el destino de cada dominio hacia mi IP publica, pero el DNS uso los servidores de 1&1. Podrías explicarme un poco más?

    Saludos

  9. Yunier López dice:

    Hola

    Tengo dos dominios apuntando a la misma IP pública, pero el caso es que cuando pongo el segundo dominio en el navegador, me redirecciona al primer dominio.

    Cual puede ser el problema ?

Leave a Reply

Demuestra que no eres un bot: *