Traffic Shaping
Module: core
Description
Starting with 1.3.8, lighttpd supports limiting the bandwidth for a single connection or config context like a virtual host or a URL.
Options
- connection.kbytes-per-second:
limit the throughput for each single connection to the given limit in kbyte/s
default: 0 (no limit)
- server.kbytes-per-second:
limit the throughput for all connections to the given limit in kbyte/s
if you want to specify a limit for a special virtual server use:
$HTTP["host"] == "www.example.org" { server.kbytes-per-second = 128 }which will override the default for this host.
default: 0 (no limit)
Additional Notes
Keep in mind that a limit below 32kb/s might actually limit the traffic to 32kb/s. This is caused by the size of the TCP send buffer.
Selective traffic shaping (>=1.5-svn)
There is a small plugin to use selective traffic shaping on a per-connection base. You can e.g. use php and do:
<?php
header("X-LIGHTTPD-KBytes-per-second: 50");
header("X-Sendfile: /path/to/file");
?>
to set the speed of the current connection.
Options
- speed.just-copy-header = "enable"
use this on the frontend to just copy the header from the response to the request header (forward it to the backend)
default: "disabled" (just use it)
- speed.use-request = "enable"
use this on the backend to fetch the speed from the request. This is not useful on the frontend, i think :)
default: "disabled" (don't look in the request headers)

