Project

General

Profile

LighttpdUnderSuperviseExampleConfiguration » History » Revision 3

Revision 2 (conny, 2006-01-30 14:54) → Revision 3/5 (conny, 2006-01-30 14:54)

h1. = Lighttpd configuration layout 

 = 
 The application configuration files can be placed below the service directory as well in a _djbdns_-similar ''djbdns''-similar way. Thanks to the include-directives of Lighttpd, your configuration can be split up into smaller parts, put into subdirectories, and maybe even _shared_ ''shared'' between multiple lighttpd service instances.  

 Similarly, by combining the environment variable substitution directives ("env.*") with the envdir program your configuration could be modularized almost _ad infinitum_. ''ad infinitum''. 

 The term "service instance" is used to refer to the fact that it works perfectly well to have multiple instances of lighttpd running on your server, each on different ip/ports with different privileges. 



 h2. 


 == Example 1 

 == 
 Continuing on the example used in LighttpdUnderSupervise: 

 <pre> 

 
 {{{ 
 /srv/lighttpd-main/ 
 /srv/lighttpd-main/root/           # root directory of the lighttpd configuration 
 /srv/lighttpd-main/root/common/ -> /etc/lighttpd/common/ # symlink pointing to a shared directory 
 /srv/lighttpd-main/root/htdocs/    # default website root 
 /srv/lighttpd-main/root/sites/     # vhost configuration files 
 </pre> 



 h3. }}} 

 === File ./run 


 <pre> 

 === 
 {{{ 
 #! /bin/sh 

 exec 2>&1 
 exec softlimit -m 700000000 /usr/sbin/lighttpd -D -f ./root/lighttpd.conf 
 </pre> 



 h3. }}} 

 === File ./root/lighttpd.conf 

 === 
 Because we used the -f parameter, the base for other included files will be /srv/lighttpd-main/root/. 

 <pre> 

 
 {{{ 
 include "modules.inc" 
 include "common/common.inc" 

 # default site 
 server.bind         = "192.168.8.160" 
 include "sites/default" 

 # "Multiple bind" hack 
 $SERVER["socket"] == "132.12.21.20:80" { 
         include "sites/foo.com" 
 } 
 $SERVER["socket"] == "132.12.21.21:80" { 
         include "sites/foo.co.jp" 
 } 
 $SERVER["socket"] == "132.12.21.22:80" { 
         include "sites/foo.se" 
 } 
 </pre> 



 h3. }}} 

 === File ./root/modules.conf 


 <pre> 

 === 
 {{{ 
 server.modules = ( 
                    "mod_rewrite", 
                    "mod_alias", 
 ... 
 </pre> 



 h3. }}} 

 === File ./root/common/common.inc 


 <pre> 

 === 
 {{{ 
 server.pid-file = "./supervise/lighttpd.pid"    # ...or maybe ./root/lighttpd.pid is "cleaner" 
 server.username    = "www-data" 
 #server.max-keep-alive-idle = 30 
 ... 
 </pre> 



 h3. }}} 

 === File ./root/sites/default 


 <pre> 

 === 
 {{{ 
 server.document-root = "./root/htdocs/" # default website root 
 status.status-url = "/server-status" 
 ... 
 </pre> 



 h3. }}} 

 === File ./root/sites/foo.com 


 <pre> 

 === 
 {{{ 
 # No $HTTP["host"] match required in this example since this site  
 # file was included from within a $SERVER["socket"] stanza... 
 server.document-root = /home/foo.com/wwwroot/ 
 ... 
 </pre> 
 }}}