Virtual host, en Apache 2.0
April 3rd, 2006 by BusindreLos host virtuales (VirtualHost), son dominios con una sintaxis: http://virtualhost.host.com. Si vuestro servidor es www.host.com, podréis crear el host virtual antes mencionado simplemente indicándole a Apache que, en el caso de que sea convocado el virtualhost y no el host directamente, vaya a leer los archivos en otro directorio que no sea DocumentRoot (/var/www/), y consecuentemente los mande al navegador de quien lo haya pedido. De esta manera se puede con un solo apache tener “varios servers virtuales”. Esto en Apache2 es muy fácil de realizar, como en sus anteriores versiones, pero no hay mucha documentación al respecto para novaitos.
Veremos un ejemplo para tener dominios dyndns por cada usuario (virtual host), lo voy a hacer de manera que cada usuario tenga su directorio en su home, pero se puede hacer con cualquier directorio como es lógico:
Creamos el directorio en el home del usuario (invitado)
$ mkdir /home/invitado/public_html/
Realizamos el enlace para que este operativo el host virtual
$ ln -s /etc/apache2/sites-available/invitado /etc/apache2/sites-enabled/invitado
Creamos logs personalizados para esa cuenta:
# mkdir /var/log/apache2/invitado/error.log
Editamos: /etc/apache2/sites-available/invitado
NameVirtualHost *
<virtualhost *>
ServerAdmin invitado@gmail.com
ServerName busindre.is-a-geek.com
DocumentRoot /home/invitado/public_html/
Options Indexes FollowSymLinks MultiViews
ErrorLog /var/log/apache2/invitado/error.log
<Directory /home/invitado/public_html/>
Options ExecCGI FollowSymLinks
AddHandler cgi-script .cgi
AllowOverride all
Allow from all
Order allow,deny
</Directory>
</virtualhost>
NOTA: busindre.is-a-geek.com es el dynds asociado a la cuenta invitado
Si tenemos más dominios pues añadimos mas ficheros como invitado con su correspondiente enlace (/etc/apache2/sites-available/invitado).Recordar reiniciar el server /etc/init.d/apache2 restart
Si vas a estar en una red local, tengamos dominio comprado o simplemente en /etc/hosts nos hemos creado uno para nuestras pruebas o actividades de la red LAN, debemos ponerlo virtualhost.host.com. Siendo host.com nuestro dominio, como el anterior pero con ServerName como www.virtual.host.com:
www.host.com —> La web default, no virtual
www.virtual_1.host.com –> La web del virtual host 1
www.virtual_2.host.com –> La web del virtual host 1
Para verlo desde local debemos editar /etc/hosts.
127.0.0.1 localhost
127.0.0.1 www.busindre.com
127.0.0.1 www.invitado.busindre.com
Estos nombres deben estar en la configuración del virtual host como ServerName. Luego creamos los enlaces de la misma manera que antes y reiniciamos el server.
Posted in Internet | 18 Comentarios »
.