====== Host Virtuales en Lighttpd ====== **Module: mod_simple_vhost** Haremos un //supuesto simple//: Cada máquina virtual está en un directorio debajo de un //directorio de base// en un camino que es el mismo que el nombre del host virtual. Por debajo de este camino vhost podría ser un directorio extra que es la raíz del documento del host virtual. La raíz de documento para cada host virtual está construido a partir de tres valores: * raíz del servidor * hostname * documento de la raíz La raíz del documento completo está construido, ya sea por: server-root + hostname + document-root o si esta ruta no existe, es por: server-root + default-host + document-root Un pequeño ejemplo, debe dejar esta idea clara: /var/www/ /var/www/logs/ /var/www/servers/ /var/www/servers/example.org/ /var/www/servers/example.org/lib/ /var/www/servers/example.org/pages/ /var/www/servers/mail.example.org/ /var/www/servers/mail.example.org/lib/ /var/www/servers/mail.example.org/pages/ simple-vhost.server-root = "/var/www/servers/" simple-vhost.default-host = "example.org" simple-vhost.document-root = "pages" Con esta instalación, las solicitudes de //"example.org"// o //"algo-else.example.org"// irán al directorio ///var/www/servers/example.org/pages///, mientras que las solicitudes de //"mail.example.org"// se vaya a ///var/www/servers/mail.example.org/pages//. Usted puede utilizar los enlaces simbólicos para asignar varios nombres de host en el mismo directorio. ===== Conditionals vs. simple-vhost ===== Tienes que tener en cuenta que los //condicionales// y los //simple-vhost// pueden interferir unos con otros. simple-vhost.server-root = "/var/www/servers/" simple-vhost.default-host = "example.org" simple-vhost.document-root = "pages" $HTTP["host"] == "news.example.org" { server.document-root = "/var/www/servers/news2.example.org/pages/" } Cuando se solicita //news.example.org//, el **server.document-root** se establecerá en ///var/www/servers/news2.example.org/pages///, pero simple-vhost la sobrescribirá poco después. Si existe ///var/www/servers/news.example.org/pages///, deberá ser usado. Si no, se usará el directorio ///var/www/servers/example.org/pages///, porque es el predeterminado. Para utilizar los //condicionales// junto con los //simple-vhost//, usted deberá hacer esto: $HTTP["host"] != "news.example.org" { simple-vhost.server-root = "/var/www/servers/" simple-vhost.default-host = "example.org" simple-vhost.document-root = "pages" } $HTTP["host"] == "news.example.org" { server.document-root = "/var/www/servers/news2.example.org/pages/" } Permitirá //simple-vhosting// para todos los hosts que no sean //news.example.org//. ==== Para dos o más hosts ==== Para permitir hosting de //simple-vhost//, que no sean //test1.example.org// y //test2.example.org//. $HTTP["host"] !~ "^(test1\.example\.org|test2\.example\.org)$" { simple-vhost.server-root = "/var/www" simple-vhost.document-root = "/html/" ## the default host if no host is sent simple-vhost.default-host = "example.org" } $HTTP["host"] == "test1.example.org" { server.document-root = "/home/user/sites/test1.example.org/" accesslog.filename = "/home/user/sites/logs/test1.example.org.access.log" } $HTTP["host"] == "test2.example.org" { server.document-root = "/home/user/sites/test2.example.org" accesslog.filename = "/home/user/sites/logs/test2.example.org.access.log" } Por supuesto, necesitará los permisos de configuración de las carpetas (Cambiar propietario el usuario que ejecuta lighttpd) si lo haces como en este ejemplo. ===== Options ===== **simple-vhost.server-root**