| ====================== |
| Simple Virtual-Hosting |
| ====================== |
| |
| ------------------------ |
| Module: mod_simple_vhost |
| ------------------------ |
| |
| :Author: Jan Kneschke |
| :Date: $Date: 2004/08/29 09:43:49 $ |
| :Revision: $Revision: 1.1 $ |
| |
| :abstract: |
| virtual hosting |
| |
| .. meta:: |
| :keywords: lighttpd, virtual hosting |
| |
| .. contents:: Table of Contents |
| |
| Description |
| =========== |
| |
| Simple assumption: |
| |
| Every virtual host is in a directory below a base directory in a path that |
| is the same as the name of the vhost. Below this vhost path might be an |
| extra directory which is the document root of the vhost. |
| |
| The document root for each vhost is built from three values: |
| |
| - server-root |
| - hostname |
| - document-root |
| |
| The complete document root is constructed either by :: |
| |
| server-root + hostname + document-root |
| |
| or if this path does not exist by :: |
| |
| server-root + default-host + document-root |
| |
| A small example should make this idea clear: :: |
| |
| /var/www/ |
| /var/www/logs/ |
| /var/www/servers/ |
| /var/www/servers/www.example.org/ |
| /var/www/servers/www.example.org/lib/ |
| /var/www/servers/www.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 = "www.example.org" |
| simple-vhost.document-root = "pages" |
| |
| You can use symbolic links to map several hostnames to the same directory. |
| |
| Conditionals vs. simple-vhost |
| ----------------------------- |
| |
| You have to keep in mind that conditionals and simple-vhost interfere |
| with one another. :: |
| |
| simple-vhost.server-root = "/var/www/servers/" |
| simple-vhost.default-host = "www.example.org" |
| simple-vhost.document-root = "pages" |
| |
| $HTTP["host"] == "news.example.org" { |
| server.document-root = "/var/www/servers/news2.example.org/pages/" |
| } |
| |
| When ``news.example.org`` is requested, the ``server.document-root`` |
| will be set to ``/var/www/servers/news2.example.org/pages/``, but |
| simple-vhost will overwrite it shortly afterwards. |
| |
| If ``/var/www/servers/news.example.org/pages/`` exists, that will be |
| used. If not, ``/var/www/servers/www.example.org/pages/`` will be taken |
| because it is the default. |
| |
| To use conditionals together with simple-vhost, you should do this: :: |
| |
| $HTTP["host"] !~ "^(news\.example\.org)$" { |
| simple-vhost.server-root = "/var/www/servers/" |
| simple-vhost.default-host = "www.example.org" |
| simple-vhost.document-root = "pages" |
| } |
| |
| $HTTP["host"] == "news.example.org" { |
| server.document-root = "/var/www/servers/news2.example.org/pages/" |
| } |
| |
| It will enable simple vhosting for all hosts other than ``news.example.org``. |
| |
| Options |
| ======= |
| |
| simple-vhost.server-root |
| root of the virtual host |
| |
| simple-vhost.default-host |
| use this hostname if the requested hostname does not have its own directory |
| |
| simple-vhost.document-root |
| path below the vhost directory |
| |