Título: Apache - Como crear host virtuales para tener varias web almacenadas??? Publicado por: alzehimer_cerebral en 25 Noviembre 2010, 01:17 am Hola a todos, me encuentro configurando un servidor Apache en Ubuntu 10.04 con el objetivo de labergar varias paginas web, os voy a exponer lo que quiero conseguir para ver si alguien me puede guiar en dicho proceso..
Imaginemos que he comprado 2 dominios: www.megustaelhacker.net y www,vivaelhacker.net. En ambas empresas de hosting redirecciono los dominios a la IP publica de mi servidor Apache. Me gustaria que dependiendo de que dominio provenga la peticion al servidor web pues que se cargara un host virtual en concreto. Segun lo que he leido en la pagina de Apache (http://httpd.apache.org/docs/1.3/dns-caveats.html) y en (http://httpd.apache.org/docs/1.3/vhosts/ip-based.html), he optado por la opcion de tener solo un demonio Apache con varios hosts virtuales, los hosts virtuales serian algo como: <VirtualHost www.megustaelhacker.net> ServerAdmin webmaster@mail.smallco.com DocumentRoot /groups/smallco/www ServerName www.megustaelhacker.net ErrorLog /groups/smallco/logs/error_log TransferLog /groups/smallco/logs/access_log </VirtualHost> <VirtualHost www.vivaelhacker.net> ServerAdmin webmaster@mail.baygroup.org DocumentRoot /groups/baygroup/www ServerName www.vivaelhacker.net ErrorLog /groups/baygroup/logs/error_log TransferLog /groups/baygroup/logs/access_log </VirtualHost> 1.-Si opto por este tipo de hosts virtuales, no tengo claro como se sabria que host virtual cargar... Ya que supongo que url seria http://IP_PUBLICA... Hay alguna forma de saber y diferenciar que host virtual cargar??? Tambien he leido que es conveniente poner la IP en el host virtual: <VirtualHost 10.0.0.1> ServerName www.megustaelhacker.net ServerAdmin webgirl@abc.dom DocumentRoot /www/megustaelhacker.net </VirtualHost> <VirtualHost 10.0.0.2> ServerName www.vivaelhacker.net ServerAdmin webgirl@abc.dom DocumentRoot /www/vivaelhacker.net </VirtualHost> 2. Si optase por este modo de hosts virtuales, supongo que tendria que crear interfaces de red virtuales una para 10.0.0.1 y otra para 10.0.0.2... Tampoco llego a entender como a partir del trafico de entrada se determina cual virtualhost cargar?? Bueno haber si alguien me puede indicar cual de los dos metodos es mas conveniente para mis propositos?? Una vez decidido el metodo la cuestion seria saber si debo tener un servidor DNS o si con el /etc/hosts seria suficiente?? La peticion que recibe mi servidor Apache lleva el ServerName explicito?? Lo siento por formular tantas preguntas. He intentado ser lo mas claro posible. Cualquier ayuda basada en vuestra experiencia es bienvenida. Gracias de antemano. Salu2 alzehimer_cerebral :P Título: Re: Apache - Como crear host virtuales para tener varias web almacenadas??? Publicado por: Nakp en 25 Noviembre 2010, 06:47 am <virtualhost * > solo aplica para ip's por las cuales se accesa al host, en servername especificas el nombre asociado a la ruta
si defines una ip especifica solo se accesara al host si esa ip corresponde al server que aloja el sitio en todo caso puedes usar <virtualhostname> si deseas agregarle tambien en una etiqueta el hostname como se carga? pues se accesa por el nombre de dominio (previamente apuntado a tu servidor) y apache asocia la peticion del dominio con los vhosts antes definidos para que comprendas mejor define tus vhosts y modifica el archivo de hosts (/etc/hosts) para que todos los dominios de tu vhost apunten a 127.0.0.1 (localhost) y veras como asocia cada uno dependiendo del servername por el que accesa xD disculpa si queda un poco confuso pero tengo sueño x'D nota: mover a desarrollo web :D Título: Re: Apache - Como crear host virtuales para tener varias web almacenadas??? Publicado por: alzehimer_cerebral en 25 Noviembre 2010, 10:47 am Citar en todo caso puedes usar <virtualhostname> si deseas agregarle tambien en una etiqueta el hostname Supongo que te referiras a la directiva NameVirtualHost. :P Ya lo he probado en local y todo funciona a la perfeccion con NameServer en los virtualhost y añadiendo el NameServer a /Etc/hosts y que apunte a 127.0.0.1... El problema es que mi dominio www.megustaelhacker.net lo redirigo mediante una redireccion http a http://IP_PUBLICA_SERVER. Por lo tanto si pongo en el navegador www.megustaelhacker.net esta url pasa a ser http://IP_PUBLICA_SERVER... Entonces la peticion que llega al servidor apache no se puede resolver ya que es una IP en vez de una URL con el nombre del dominio... Me entiendes ahora??? Salu2. alzehimer_Cerebral Título: Re: Apache - Como crear host virtuales para tener varias web almacenadas??? Publicado por: el-brujo en 25 Noviembre 2010, 18:22 pm Justamente has puesto los dos tipos que hay de virtualhosts y sólo tienes que usar uno.
Hay dos tipos de VirtualHosts, ip-based y name-based. En tu caso si sólo tienes una ip, pues deberías usar el name-based (basado en el nombre). El primer ejemplo es named-based <VirtualHost www.megustaelhacker.net> Y el segundo ejemplo es basado en ip. <VirtualHost 10.0.0.1> Los dos dominios deben apuntar a la la misma ip y el servidor web ya sabrá cuál mostrar, no analiza el tráfico ni nada de eso, simplemente cuando escribas www.megustaelhacker.net te llevará al documentRoot (httpdocs) de /groups/smallco/www. Citar Los vhosts pueden estar basados en nombre (based-name) o en ip (ip-based). Me explico, si tu máquina tiene una sola ip, pues deberas hacer vhosts basados en nombre, y si tienes varias ips pues puedes elegir, yo solo se hacerlo basado en nombre, ya que sólo tengo una ip: Por ejemplo: Tenemos el apache y queremos alojar nuestra web y la de un amigo: El amigo compra el dominio pepe.com y apunta las dns a nuestra maquina. Nosotros tenemos que decirle a nuestra máquina esto: <VirtualHost *> ServerAdmin amigo@pepe.com DocumentRoot /web/amigo_pepe/ ServerName pepe.com ErrorLog logs/web_amigo_pepe_errpr CustomLog logs/web_amigo_pepe_log common </VirtualHost> Ejemplo real de un vhost based-name (basado en nombre) del dominio elhacker.net, totalmente completo: #le decimos listen y la ip de nuestra maquina y el puerto (normalmente 80) Listen *:80 #recuerda que si sales por un router deberás poner Listen 192.168.0.3 , o sea la ip local, ya que sinó al arrancar el apache dará el error "could not bind address port" NameVirtualHost *:80 #este es el vhost por defecto. Aunque está basado en nombre, este vhost como es por defecto, también podemos acceder directamente por la ip. <VirtualHost *:80> DocumentRoot /usr/local/apache/htdocs/alex ServerName www.elhacker.info ServerAlias elhacker.info </VirtualHost> #segundo vhost basado en en el nombre (dominio) www.elhacker.net y elhacker.net <VirtualHost *:80> ServerAdmin alex@elhacker.net DocumentRoot /usr/local/apache/htdocs/elhackernet ServerName www.elhacker.net ServerAlias elhacker.net </VirtualHost> Asi en nuestro ordenador tendremos nuestra web y la de nuestro amigo, y las dos estaran en la misma IP y en el mismo servidor web. En este ejemplo solo hay 2 dominios, pero igual que hay 2 podriamos poner 200. Fuente: http://foro.elhacker.net/tutoriales_documentacion/instalar_apache_php_mysql_perl_en_windows_y_linux_configuracion_avanzada-t251.0.html Título: Re: Apache - Como crear host virtuales para tener varias web almacenadas??? Publicado por: Nakp en 25 Noviembre 2010, 22:09 pm he ahi el problema... Haces una redireccion dominio->ip en vez de apuntar por dns
Título: Re: Apache - Como crear host virtuales para tener varias web almacenadas??? Publicado por: alzehimer_cerebral en 26 Noviembre 2010, 00:49 am Efectivamente Nakp era problema de la redireccion. He entrado a la configuracion del dominio y lo que hecho es añadir al servidor DNS de la empresa que proporciona el dominio la IP del servidor en cual se encuentra la pagina.
Gracias a todos por los aportes, me han sido de gran ayuda. Salu2 Tema zanjado. Título: Re: Apache - Como crear host virtuales para tener varias web almacenadas??? Publicado por: merck en 6 Enero 2013, 17:19 pm Hola a todos¡¡ :D
He leido por el foro sobre el alojamiento d diferentes web mediante apache2(ubuntu). De hecho he logrado visualizarlas.Os expongo mi problema con un ejemplo: Tengo una pagina almacenada en un directorio www.ubuntuelhacker.net, el directorio lo llamo ubuntu En otra pagina lo mismo , la pagina almacendada es windowselhacker.net en el directorio windows. Para poder visualizar cada una de ellas tengo que pasar por el directorio obligado, es decir : -ubuntu/www.ubuntuelhacker.net Ya que si no me sale un error de pagina no encontrada. :rolleyes:He he hecho varias pruebas con el archivo etc/apache2/default , perono le doy con el clavo. Saludos |