view @ 318:beb5bcb9eb91

Edited wiki page mod_auth_ldap2 through web user interface.
date Wed, 05 Dec 2012 11:35:02 +0000
parents 5999d2eb2149
line wrap: on
line source

#summary Connection-level rate limiting
#labels Stage-Beta

= Introduction =

On some servers, especially public ones, it is desired to make sure that everyone gets their fair share of system resources (and no more).

mod_limits allows you to specify traffic bandwidth limits, preventing any single connection hogging the server's CPU, RAM and bandwidth.

= Details =

mod_limits detects when a connection has exceeded its traffic allowance and temporarily ignores a connection. Due to the way TCP and the OS's network API works no data is lost, only slowed.

= Configuration =
Currently mod_limits is configured per connection type. The possible connection types are:

  * c2s
  * s2sin
  * s2sout
  * component

The limits are specified like so in the *global* section of your config (they cannot be per-host):

    limits = {
        c2s = {
            rate = "3kb/s";
            burst = "2s";
        s2sin = {
            rate = "10kb/s";
            burst = "5s";

All units are in terms of _bytes_, not _bits_, so that "kb/s" is interpreted as "kilobytes per second", where a kilobyte is 1000 bytes.

= Compatibility =
|| 0.9 || Works ||
|| 0.8 || Doesn't work(`*`) ||

(`*`) This module can be made to work in 0.8 if you do two things:

  # Install [ util.throttle] into your Prosody source's util/ directory.
  # If you use libevent apply [ this patch] to net/server_event.lua.