Annotation of embedaddon/lighttpd/doc/config/lighttpd.conf, revision 1.1.1.2

1.1       misho       1: #######################################################################
                      2: ##
                      3: ## /etc/lighttpd/lighttpd.conf
                      4: ##
                      5: ## check /etc/lighttpd/conf.d/*.conf for the configuration of modules.
                      6: ##
                      7: #######################################################################
                      8: 
                      9: #######################################################################
                     10: ##
                     11: ## Some Variable definition which will make chrooting easier.
                     12: ##
                     13: ## if you add a variable here. Add the corresponding variable in the
                     14: ## chroot example aswell.
                     15: ##
                     16: var.log_root    = "/var/log/lighttpd"
                     17: var.server_root = "/srv/www"
                     18: var.state_dir   = "/var/run"
                     19: var.home_dir    = "/var/lib/lighttpd"
                     20: var.conf_dir    = "/etc/lighttpd"
                     21: 
                     22: ## 
                     23: ## run the server chrooted.
                     24: ## 
                     25: ## This requires root permissions during startup.
                     26: ##
                     27: ## If you run Chrooted set the the variables to directories relative to
                     28: ## the chroot dir.
                     29: ##
                     30: ## example chroot configuration:
                     31: ## 
                     32: #var.log_root    = "/logs"
                     33: #var.server_root = "/"
                     34: #var.state_dir   = "/run"
                     35: #var.home_dir    = "/lib/lighttpd"
                     36: #var.vhosts_dir  = "/vhosts"
                     37: #var.conf_dir    = "/etc"
                     38: #
                     39: #server.chroot   = "/srv/www"
                     40: 
                     41: ##
                     42: ## Some additional variables to make the configuration easier
                     43: ##
                     44: 
                     45: ##
                     46: ## Base directory for all virtual hosts
                     47: ##
                     48: ## used in:
                     49: ## conf.d/evhost.conf
                     50: ## conf.d/simple_vhost.conf
                     51: ## vhosts.d/vhosts.template
                     52: ##
                     53: var.vhosts_dir  = server_root + "/vhosts"
                     54: 
                     55: ##
                     56: ## Cache for mod_compress
                     57: ##
                     58: ## used in:
                     59: ## conf.d/compress.conf
                     60: ##
                     61: var.cache_dir   = "/var/cache/lighttpd"
                     62: 
                     63: ##
                     64: ## Base directory for sockets.
                     65: ##
                     66: ## used in:
                     67: ## conf.d/fastcgi.conf
                     68: ## conf.d/scgi.conf
                     69: ##
                     70: var.socket_dir  = home_dir + "/sockets"
                     71: 
                     72: ##
                     73: #######################################################################
                     74: 
                     75: #######################################################################
                     76: ##
                     77: ## Load the modules.
                     78: include "modules.conf"
                     79: 
                     80: ##
                     81: #######################################################################
                     82: 
                     83: #######################################################################
                     84: ##
                     85: ##  Basic Configuration
                     86: ## ---------------------
                     87: ##
                     88: server.port = 80
                     89: 
                     90: ##
                     91: ## Use IPv6?
                     92: ##
                     93: server.use-ipv6 = "enable"
                     94: 
                     95: ##
                     96: ## bind to a specific IP
                     97: ##
                     98: #server.bind = "localhost"
                     99: 
                    100: ##
                    101: ## Run as a different username/groupname.
                    102: ## This requires root permissions during startup. 
                    103: ##
                    104: server.username  = "lighttpd"
                    105: server.groupname = "lighttpd"
                    106: 
                    107: ## 
                    108: ## enable core files.
                    109: ##
                    110: #server.core-files = "disable"
                    111: 
                    112: ##
                    113: ## Document root
                    114: ##
                    115: server.document-root = server_root + "/htdocs"
                    116: 
                    117: ##
                    118: ## The value for the "Server:" response field.
                    119: ##
                    120: ## It would be nice to keep it at "lighttpd".
                    121: ##
                    122: #server.tag = "lighttpd"
                    123: 
                    124: ##
                    125: ## store a pid file
                    126: ##
                    127: server.pid-file = state_dir + "/lighttpd.pid"
                    128: 
                    129: ##
                    130: #######################################################################
                    131: 
                    132: #######################################################################
                    133: ##
                    134: ##  Logging Options
                    135: ## ------------------
                    136: ##
                    137: ## all logging options can be overwritten per vhost.
                    138: ##
                    139: ## Path to the error log file
                    140: ##
                    141: server.errorlog             = log_root + "/error.log"
                    142: 
                    143: ##
                    144: ## If you want to log to syslog you have to unset the 
                    145: ## server.errorlog setting and uncomment the next line.
                    146: ##
                    147: #server.errorlog-use-syslog = "enable"
                    148: 
                    149: ##
                    150: ## Access log config
                    151: ## 
                    152: include "conf.d/access_log.conf"
                    153: 
                    154: ##
                    155: ## The debug options are moved into their own file.
                    156: ## see conf.d/debug.conf for various options for request debugging.
                    157: ##
                    158: include "conf.d/debug.conf"
                    159: 
                    160: ##
                    161: #######################################################################
                    162: 
                    163: #######################################################################
                    164: ##
                    165: ##  Tuning/Performance
                    166: ## --------------------
                    167: ##
                    168: ## corresponding documentation:
                    169: ## http://www.lighttpd.net/documentation/performance.html
                    170: ##
                    171: ## set the event-handler (read the performance section in the manual)
                    172: ##
                    173: ## possible options on linux are:
                    174: ##
                    175: ## select
                    176: ## poll
                    177: ## linux-sysepoll
                    178: ##
                    179: ## linux-sysepoll is recommended on kernel 2.6.
                    180: ##
                    181: server.event-handler = "linux-sysepoll"
                    182: 
                    183: ##
                    184: ## The basic network interface for all platforms at the syscalls read()
                    185: ## and write(). Every modern OS provides its own syscall to help network
                    186: ## servers transfer files as fast as possible 
                    187: ##
                    188: ## linux-sendfile - is recommended for small files.
                    189: ## writev         - is recommended for sending many large files
                    190: ##
                    191: server.network-backend = "linux-sendfile"
                    192: 
                    193: ##
                    194: ## As lighttpd is a single-threaded server, its main resource limit is
                    195: ## the number of file descriptors, which is set to 1024 by default (on
                    196: ## most systems).
                    197: ##
                    198: ## If you are running a high-traffic site you might want to increase this
                    199: ## limit by setting server.max-fds.
                    200: ##
                    201: ## Changing this setting requires root permissions on startup. see
                    202: ## server.username/server.groupname.
                    203: ##
                    204: ## By default lighttpd would not change the operation system default.
                    205: ## But setting it to 2048 is a better default for busy servers.
                    206: ##
                    207: server.max-fds = 2048
                    208: 
                    209: ##
                    210: ## Stat() call caching.
                    211: ##
                    212: ## lighttpd can utilize FAM/Gamin to cache stat call.
                    213: ##
                    214: ## possible values are:
                    215: ## disable, simple or fam.
                    216: ##
                    217: server.stat-cache-engine = "simple"
                    218: 
                    219: ##
                    220: ## Fine tuning for the request handling
                    221: ##
                    222: ## max-connections == max-fds/2 (maybe /3)
                    223: ## means the other file handles are used for fastcgi/files
                    224: ##
                    225: server.max-connections = 1024
                    226: 
                    227: ##
                    228: ## How many seconds to keep a keep-alive connection open,
                    229: ## until we consider it idle. 
                    230: ##
                    231: ## Default: 5
                    232: ##
                    233: #server.max-keep-alive-idle = 5
                    234: 
                    235: ##
                    236: ## How many keep-alive requests until closing the connection.
                    237: ##
                    238: ## Default: 16
                    239: ##
                    240: #server.max-keep-alive-requests = 16
                    241: 
                    242: ##
                    243: ## Maximum size of a request in kilobytes.
                    244: ## By default it is unlimited (0).
                    245: ##
                    246: ## Uploads to your server cant be larger than this value.
                    247: ##
                    248: #server.max-request-size = 0
                    249: 
                    250: ##
                    251: ## Time to read from a socket before we consider it idle.
                    252: ##
                    253: ## Default: 60
                    254: ##
                    255: #server.max-read-idle = 60
                    256: 
                    257: ##
                    258: ## Time to write to a socket before we consider it idle.
                    259: ##
                    260: ## Default: 360
                    261: ##
                    262: #server.max-write-idle = 360
                    263: 
                    264: ##
                    265: ##  Traffic Shaping 
                    266: ## -----------------
                    267: ##
                    268: ## see /usr/share/doc/lighttpd/traffic-shaping.txt
                    269: ##
                    270: ## Values are in kilobyte per second.
                    271: ##
                    272: ## Keep in mind that a limit below 32kB/s might actually limit the
                    273: ## traffic to 32kB/s. This is caused by the size of the TCP send
                    274: ## buffer. 
                    275: ##
                    276: ## per server:
                    277: ##
                    278: #server.kbytes-per-second = 128
                    279: 
                    280: ##
                    281: ## per connection:
                    282: ##
                    283: #connection.kbytes-per-second = 32
                    284: 
                    285: ##
                    286: #######################################################################
                    287: 
                    288: #######################################################################
                    289: ##
                    290: ##  Filename/File handling
                    291: ## ------------------------
                    292: 
                    293: ##
                    294: ## files to check for if .../ is requested
                    295: ## index-file.names            = ( "index.php", "index.rb", "index.html",
                    296: ##                                 "index.htm", "default.htm" )
                    297: ##
                    298: index-file.names += (
                    299:   "index.xhtml", "index.html", "index.htm", "default.htm", "index.php"
                    300: )
                    301: 
                    302: ##
                    303: ## deny access the file-extensions
                    304: ##
                    305: ## ~    is for backupfiles from vi, emacs, joe, ...
                    306: ## .inc is often used for code includes which should in general not be part
                    307: ##      of the document-root
                    308: url.access-deny             = ( "~", ".inc" )
                    309: 
                    310: ##
                    311: ## disable range requests for pdf files
                    312: ## workaround for a bug in the Acrobat Reader plugin.
                    313: ##
                    314: $HTTP["url"] =~ "\.pdf$" {
                    315:   server.range-requests = "disable"
                    316: }
                    317: 
                    318: ##
                    319: ## url handling modules (rewrite, redirect)
                    320: ##
                    321: #url.rewrite                = ( "^/$"             => "/server-status" )
                    322: #url.redirect               = ( "^/wishlist/(.+)" => "http://www.example.com/$1" )
                    323: 
                    324: ##
                    325: ## both rewrite/redirect support back reference to regex conditional using %n
                    326: ##
                    327: #$HTTP["host"] =~ "^www\.(.*)" {
                    328: #  url.redirect            = ( "^/(.*)" => "http://%1/$1" )
                    329: #}
                    330: 
                    331: ##
                    332: ## which extensions should not be handle via static-file transfer
                    333: ##
                    334: ## .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi
                    335: ##
                    336: static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".scgi" )
                    337: 
                    338: ##
                    339: ## error-handler for status 404
                    340: ##
                    341: #server.error-handler-404   = "/error-handler.html"
                    342: #server.error-handler-404   = "/error-handler.php"
                    343: 
                    344: ##
                    345: ## Format: <errorfile-prefix><status-code>.html
                    346: ## -> ..../status-404.html for 'File not found'
                    347: ##
                    348: #server.errorfile-prefix    = "/srv/www/htdocs/errors/status-"
                    349: 
                    350: ##
                    351: ## mimetype mapping
                    352: ##
                    353: include "conf.d/mime.conf"
                    354: 
                    355: ##
                    356: ## directory listing configuration
                    357: ##
                    358: include "conf.d/dirlisting.conf"
                    359: 
                    360: ##
                    361: ## Should lighttpd follow symlinks?
                    362: ## 
                    363: server.follow-symlink = "enable"
                    364: 
                    365: ##
                    366: ## force all filenames to be lowercase?
                    367: ##
                    368: #server.force-lowercase-filenames = "disable"
                    369: 
                    370: ##
                    371: ## defaults to /var/tmp as we assume it is a local harddisk
                    372: ##
                    373: server.upload-dirs = ( "/var/tmp" )
                    374: 
                    375: ##
                    376: #######################################################################
                    377: 
                    378: 
                    379: #######################################################################
                    380: ##
                    381: ##  SSL Support
                    382: ## ------------- 
                    383: ##
                    384: ## To enable SSL for the whole server you have to provide a valid
                    385: ## certificate and have to enable the SSL engine.::
                    386: ##
                    387: ##   ssl.engine = "enable"
                    388: ##   ssl.pemfile = "/path/to/server.pem"
                    389: ##
                    390: ## The HTTPS protocol does not allow you to use name-based virtual
                    391: ## hosting with SSL. If you want to run multiple SSL servers with
                    392: ## one lighttpd instance you must use IP-based virtual hosting: ::
                    393: ##
                    394: ## Mitigate CVE-2009-3555 by disabling client triggered renegotation
                    395: ## This is enabled by default.
                    396: ##
                    397: ## IMPORTANT: this setting can only be used in the global scope.
                    398: ## It does *not* work inside conditionals
                    399: ##
                    400: #   ssl.disable-client-renegotiation = "enable"
                    401: ##
                    402: ##   $SERVER["socket"] == "10.0.0.1:443" {
                    403: ##     ssl.engine                  = "enable"
                    404: ##     ssl.pemfile                 = "/etc/ssl/private/www.example.com.pem"
                    405: ##     #
1.1.1.2 ! misho     406: ##     # (Following SSL/TLS Deployment Best Practices 1.3 / 17 September 2013 from:
        !           407: ##     # https://www.ssllabs.com/projects/best-practices/index.html)
        !           408: ##     # - BEAST is considered mitigaed on client side now, and new weaknesses have been found in RC4,
        !           409: ##     #   so it is strongly advised to disable RC4 ciphers (HIGH doesn't include RC4)
        !           410: ##     # - It is recommended to disable 3DES too (although disabling RC4 and 3DES breaks IE6+8 on Windows XP,
        !           411: ##     #   so you might want to support 3DES for now - just remove the '!3DES' parts below).
        !           412: ##     # - The examples below prefer ciphersuites with "Forward Secrecy" (and ECDHE over DHE (alias EDH)), remove '+kEDH +kRSA'
        !           413: ##     #   if you don't want that.
        !           414: ##     # - SRP and PSK are not supported anyway, excluding those ('!kSRP !kPSK') just keeps the list smaller (easier to review)
        !           415: ##     # Check your cipher list with: openssl ciphers -v '...' (use single quotes as your shell won't like ! in double quotes)
1.1       misho     416: ##     #
1.1.1.2 ! misho     417: ##     # If you know you have RSA keys (standard), you can use:
        !           418: ##     ssl.cipher-list             = "aRSA+HIGH !3DES +kEDH +kRSA !kSRP !kPSK"
        !           419: ##     # The more generic version (without the restriction to RSA keys) is
        !           420: ##     # ssl.cipher-list           = "HIGH !aNULL !3DES +kEDH +kRSA !kSRP !kPSK"
1.1       misho     421: ##     #
                    422: ##     # Make the server prefer the order of the server side cipher suite instead of the client suite.
                    423: ##     # This option is enabled by default, but only used if ssl.cipher-list is set.
                    424: ##     #
                    425: ##     # ssl.honor-cipher-order = "enable"
                    426: ##     #
                    427: ##     server.name                 = "www.example.com"
                    428: ##
                    429: ##     server.document-root        = "/srv/www/vhosts/example.com/www/"
                    430: ##   }
                    431: ##
                    432: 
                    433: ## If you have a .crt and a .key file, cat them together into a
                    434: ## single PEM file:
                    435: ## $ cat /etc/ssl/private/lighttpd.key /etc/ssl/certs/lighttpd.crt \
                    436: ##   > /etc/ssl/private/lighttpd.pem
                    437: ##
                    438: #ssl.pemfile = "/etc/ssl/private/lighttpd.pem"
                    439: 
                    440: ##
                    441: ## optionally pass the CA certificate here.
                    442: ##
                    443: ##
                    444: #ssl.ca-file = ""
                    445: 
                    446: ##
                    447: #######################################################################
                    448: 
                    449: #######################################################################
                    450: ##
                    451: ## custom includes like vhosts.
                    452: ##
                    453: #include "conf.d/config.conf"
                    454: #include_shell "cat /etc/lighttpd/vhosts.d/*.conf"
                    455: ##
                    456: #######################################################################

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>