Annotation of embedaddon/lighttpd/doc/config/lighttpd.conf, revision 1.1.1.3
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: ##
1.1.1.3 ! misho 188: ## sendfile - is recommended for small files.
1.1 misho 189: ## writev - is recommended for sending many large files
190: ##
1.1.1.3 ! misho 191: server.network-backend = "sendfile"
1.1 misho 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: ##
1.1.1.3 ! misho 210: ## listen-backlog is the size of the listen() backlog queue requested when
! 211: ## the lighttpd server ask the kernel to listen() on the provided network
! 212: ## address. Clients attempting to connect() to the server enter the listen()
! 213: ## backlog queue and wait for the lighttpd server to accept() the connection.
! 214: ##
! 215: ## The out-of-box default on many operating systems is 128 and is identified
! 216: ## as SOMAXCONN. This can be tuned on many operating systems. (On Linux,
! 217: ## cat /proc/sys/net/core/somaxconn) Requesting a size larger than operating
! 218: ## system limit will be silently reduced to the limit by the operating system.
! 219: ##
! 220: ## When there are too many connection attempts waiting for the server to
! 221: ## accept() new connections, the listen backlog queue fills and the kernel
! 222: ## rejects additional connection attempts. This can be useful as an
! 223: ## indication to an upstream load balancer that the server is busy, and
! 224: ## possibly overloaded. In that case, configure a smaller limit for
! 225: ## server.listen-backlog. On the other hand, configure a larger limit to be
! 226: ## able to handle bursts of new connections, but only do so up to an amount
! 227: ## that the server can keep up with responding in a reasonable amount of
! 228: ## time. Otherwise, clients may abandon the connection attempts and the
! 229: ## server will waste resources servicing abandoned connections.
! 230: ##
! 231: ## It is best to leave this setting at its default unless you have modelled
! 232: ## your traffic and tested that changing this benefits your traffic patterns.
! 233: ##
! 234: ## Default: 1024
! 235: ##
! 236: #server.listen-backlog = 128
! 237:
! 238: ##
1.1 misho 239: ## Stat() call caching.
240: ##
241: ## lighttpd can utilize FAM/Gamin to cache stat call.
242: ##
243: ## possible values are:
244: ## disable, simple or fam.
245: ##
246: server.stat-cache-engine = "simple"
247:
248: ##
249: ## Fine tuning for the request handling
250: ##
251: ## max-connections == max-fds/2 (maybe /3)
252: ## means the other file handles are used for fastcgi/files
253: ##
254: server.max-connections = 1024
255:
256: ##
257: ## How many seconds to keep a keep-alive connection open,
258: ## until we consider it idle.
259: ##
260: ## Default: 5
261: ##
262: #server.max-keep-alive-idle = 5
263:
264: ##
265: ## How many keep-alive requests until closing the connection.
266: ##
267: ## Default: 16
268: ##
269: #server.max-keep-alive-requests = 16
270:
271: ##
272: ## Maximum size of a request in kilobytes.
273: ## By default it is unlimited (0).
274: ##
275: ## Uploads to your server cant be larger than this value.
276: ##
277: #server.max-request-size = 0
278:
279: ##
280: ## Time to read from a socket before we consider it idle.
281: ##
282: ## Default: 60
283: ##
284: #server.max-read-idle = 60
285:
286: ##
287: ## Time to write to a socket before we consider it idle.
288: ##
289: ## Default: 360
290: ##
291: #server.max-write-idle = 360
292:
293: ##
294: ## Traffic Shaping
295: ## -----------------
296: ##
297: ## see /usr/share/doc/lighttpd/traffic-shaping.txt
298: ##
299: ## Values are in kilobyte per second.
300: ##
301: ## Keep in mind that a limit below 32kB/s might actually limit the
302: ## traffic to 32kB/s. This is caused by the size of the TCP send
303: ## buffer.
304: ##
305: ## per server:
306: ##
307: #server.kbytes-per-second = 128
308:
309: ##
310: ## per connection:
311: ##
312: #connection.kbytes-per-second = 32
313:
314: ##
315: #######################################################################
316:
317: #######################################################################
318: ##
319: ## Filename/File handling
320: ## ------------------------
321:
322: ##
323: ## files to check for if .../ is requested
324: ## index-file.names = ( "index.php", "index.rb", "index.html",
325: ## "index.htm", "default.htm" )
326: ##
327: index-file.names += (
328: "index.xhtml", "index.html", "index.htm", "default.htm", "index.php"
329: )
330:
331: ##
332: ## deny access the file-extensions
333: ##
334: ## ~ is for backupfiles from vi, emacs, joe, ...
335: ## .inc is often used for code includes which should in general not be part
336: ## of the document-root
337: url.access-deny = ( "~", ".inc" )
338:
339: ##
340: ## disable range requests for pdf files
341: ## workaround for a bug in the Acrobat Reader plugin.
342: ##
343: $HTTP["url"] =~ "\.pdf$" {
344: server.range-requests = "disable"
345: }
346:
347: ##
348: ## url handling modules (rewrite, redirect)
349: ##
350: #url.rewrite = ( "^/$" => "/server-status" )
351: #url.redirect = ( "^/wishlist/(.+)" => "http://www.example.com/$1" )
352:
353: ##
354: ## both rewrite/redirect support back reference to regex conditional using %n
355: ##
356: #$HTTP["host"] =~ "^www\.(.*)" {
357: # url.redirect = ( "^/(.*)" => "http://%1/$1" )
358: #}
359:
360: ##
361: ## which extensions should not be handle via static-file transfer
362: ##
363: ## .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi
364: ##
365: static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".scgi" )
1.1.1.3 ! misho 366:
! 367: ##
! 368: ## error-handler for all status 400-599
! 369: ##
! 370: #server.error-handler = "/error-handler.html"
! 371: #server.error-handler = "/error-handler.php"
1.1 misho 372:
373: ##
374: ## error-handler for status 404
375: ##
376: #server.error-handler-404 = "/error-handler.html"
377: #server.error-handler-404 = "/error-handler.php"
378:
379: ##
380: ## Format: <errorfile-prefix><status-code>.html
381: ## -> ..../status-404.html for 'File not found'
382: ##
383: #server.errorfile-prefix = "/srv/www/htdocs/errors/status-"
384:
385: ##
386: ## mimetype mapping
387: ##
388: include "conf.d/mime.conf"
389:
390: ##
391: ## directory listing configuration
392: ##
393: include "conf.d/dirlisting.conf"
394:
395: ##
396: ## Should lighttpd follow symlinks?
397: ##
398: server.follow-symlink = "enable"
399:
400: ##
401: ## force all filenames to be lowercase?
402: ##
403: #server.force-lowercase-filenames = "disable"
404:
405: ##
406: ## defaults to /var/tmp as we assume it is a local harddisk
407: ##
408: server.upload-dirs = ( "/var/tmp" )
409:
410: ##
411: #######################################################################
412:
413:
414: #######################################################################
415: ##
416: ## SSL Support
417: ## -------------
418: ##
419: ## To enable SSL for the whole server you have to provide a valid
420: ## certificate and have to enable the SSL engine.::
421: ##
422: ## ssl.engine = "enable"
423: ## ssl.pemfile = "/path/to/server.pem"
424: ##
425: ## The HTTPS protocol does not allow you to use name-based virtual
426: ## hosting with SSL. If you want to run multiple SSL servers with
427: ## one lighttpd instance you must use IP-based virtual hosting: ::
428: ##
429: ## Mitigate CVE-2009-3555 by disabling client triggered renegotation
430: ## This is enabled by default.
431: ##
432: ## IMPORTANT: this setting can only be used in the global scope.
433: ## It does *not* work inside conditionals
434: ##
435: # ssl.disable-client-renegotiation = "enable"
436: ##
437: ## $SERVER["socket"] == "10.0.0.1:443" {
438: ## ssl.engine = "enable"
439: ## ssl.pemfile = "/etc/ssl/private/www.example.com.pem"
440: ## #
1.1.1.2 misho 441: ## # (Following SSL/TLS Deployment Best Practices 1.3 / 17 September 2013 from:
442: ## # https://www.ssllabs.com/projects/best-practices/index.html)
443: ## # - BEAST is considered mitigaed on client side now, and new weaknesses have been found in RC4,
444: ## # so it is strongly advised to disable RC4 ciphers (HIGH doesn't include RC4)
445: ## # - It is recommended to disable 3DES too (although disabling RC4 and 3DES breaks IE6+8 on Windows XP,
446: ## # so you might want to support 3DES for now - just remove the '!3DES' parts below).
447: ## # - The examples below prefer ciphersuites with "Forward Secrecy" (and ECDHE over DHE (alias EDH)), remove '+kEDH +kRSA'
448: ## # if you don't want that.
449: ## # - SRP and PSK are not supported anyway, excluding those ('!kSRP !kPSK') just keeps the list smaller (easier to review)
450: ## # Check your cipher list with: openssl ciphers -v '...' (use single quotes as your shell won't like ! in double quotes)
1.1 misho 451: ## #
1.1.1.2 misho 452: ## # If you know you have RSA keys (standard), you can use:
453: ## ssl.cipher-list = "aRSA+HIGH !3DES +kEDH +kRSA !kSRP !kPSK"
454: ## # The more generic version (without the restriction to RSA keys) is
455: ## # ssl.cipher-list = "HIGH !aNULL !3DES +kEDH +kRSA !kSRP !kPSK"
1.1 misho 456: ## #
457: ## # Make the server prefer the order of the server side cipher suite instead of the client suite.
458: ## # This option is enabled by default, but only used if ssl.cipher-list is set.
459: ## #
460: ## # ssl.honor-cipher-order = "enable"
461: ## #
462: ## server.name = "www.example.com"
463: ##
464: ## server.document-root = "/srv/www/vhosts/example.com/www/"
465: ## }
466: ##
467:
468: ## If you have a .crt and a .key file, cat them together into a
469: ## single PEM file:
470: ## $ cat /etc/ssl/private/lighttpd.key /etc/ssl/certs/lighttpd.crt \
471: ## > /etc/ssl/private/lighttpd.pem
472: ##
473: #ssl.pemfile = "/etc/ssl/private/lighttpd.pem"
474:
475: ##
476: ## optionally pass the CA certificate here.
477: ##
478: ##
479: #ssl.ca-file = ""
480:
481: ##
482: #######################################################################
483:
484: #######################################################################
485: ##
486: ## custom includes like vhosts.
487: ##
488: #include "conf.d/config.conf"
489: #include_shell "cat /etc/lighttpd/vhosts.d/*.conf"
490: ##
491: #######################################################################
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>