LoadModule bw_module extramodules/mod_bw.so # You need to set this to On, for the mod to work.. By default, the mod is # disabled, and wont limit anything. # # Example : # BandWidthModule On # # BandWidthModule [On|Off] BandWidthModule On # When enabled (disabled by default) the log will output lots of data to the # error log. This data is for debugging purposes, and is usually not needed. # If you are curious, you can enable. Please note, that this will make your # logs grow a LOT. # # Example : # BandWidthDebug On # # BandWidthDebug [On|Off] # By default, the mod will catch every request. This was done because it is # easier to configure. # if you disable it, you will have to add the output filter by hand. This is # useful is you want only some request being processed by bw_mod. # # Example : # ForceBandWidthModule Off # AddOutputFilterByType BW_MOD text/html text/plain # # ForceBandWidthModule [On|Off] # This takes 2 parameters. From is the origin of the connections. It could # be a full host, part of a domain, an ip address, a network mask (i.e # 192.168.0.0/24 or 192.168.0.0/255.255.255.0) or all. # The second parameter indicates the total speed available to the Origin. # If speed is 0, there is no limit. # # Example : # BandWidth localhost 10240 # BandWidth 192.168.218.5 0 # # ( Order is relevant. First entries have precedence ) # # BandWidth [From] [bytes/s] # This takes 2 parameters. From is the origin of the connections. It could # be a full host, part of a domain, an ip address, a network mask (i.e # 192.168.0.0/24 or 192.168.0.0/255.255.255.0) or all. # The second parameter indicates the minimun speed each client will have. # What does this mean ? If you have a total of 100kbytes speed, and you put # MinBandWidth at 50kbytes, it doesnt matter how many clients you have, all # of them will have at minimun 50kbytes of total speed to download. # If speed is 0, you will be using the default minimun (256 bytes/s). # There is a special value of -1. This value means that each client, will # have a top speed determined by the BandWidth directive. See the examples. # # Examples : # BandWidth all 102400 # MinBandWidth all 50000 # # The example above, will have a top speed of 100kb for the 1° # client. If more clients come, it will be splitted accordingly but # everyone will have at least 50kb (even if you have 50 clients) # # BandWidth all 50000 # MinBandWidth all -1 # # This example, makes everyone have 50kb as top speed. # # MinBandWidth [From] [bytes/s] # Type, is the last part of a file, or * for all. You can use .tgz to match # only tar-compressed files, .avi to match video files, or * to match all. # Minimum Size, is the size (in kbytes) of the file, to be matched. That way # you can match huge video files that hog your bandwidth. # The last parameter... is obvious. The speed allowed. # # Example : # LargeFileLimit .avi 500 10240 # # This limits .avi files over (or equal to) 500kb to 10kbytes/s # # LargeFileLimit [Type] [Minimum Size] [bytes/s] # Probably you never need to touch this. It defaults to 8192 which is good # for almost any speed. # It must be a size between 1024 and 131072. A Small packet will cause the # top speed to be lower, and the mod using more time splitting. If you use # a Size too big, the mod will adjust it to lower speeds. # # BandWidthPacket [Size] # This directives is useful to deliver a personalized error code. # At default, when maxconnections is reached, the mod will issue a 503 # HTTP_SERVICE_UNAVAILABLE code. For some users, it is annoying to have an # error message, and dont knowing why. You could use an ErrorDocument to # point error 503 to a page explaining that you are under a heavy load of # connections, but sometimes 503 isn't issued by the mod. # So, with this directive, you can set the error code to return when # maxconnections is reached. You can use any error code between 300 and 599. # Please note, that some of the error codes are already used, so before using # any number, take a look to a list of the codes (search for http error codes # in google). # When testing, i've used the error code 510, which hasn't been defined yet. # # And Example, with Personalized Error Page : # # ErrorDocument 510 /errors/maxconexceeded.html # BandWidthError 510 # # Note : Sometimes, the personalized page didn't appear. I'm not sure, but # in many cases, it got fixed, by making the page size over 1024bytes. # Anyways, if you need help using ErrorDocument, refer to the apache # Documentation. # # BandWidthError [Error] # This takes 2 parameters. From is the origin of the connections. It could # be a full host, part of a domain, an ip address, a network mask (i.e # 192.168.0.0/24 or 192.168.0.0/255.255.255.0) or all. # The second parameter, is the max connections allowed from the origin. Any # connection over Max, will get a 503 Service Temporarily Unavailable # # There is a catch. You NEED to have a BandWidth limit for the same origin. # It doesnt need to be a low limit. You can use an unlimited setting. # You might wonder why. It's because im using them same memory space of the # bandwidth limit, to count the connections, so i can save memory space. # If you dont put a BandWidth using the same origin, MaxConnections will be # ignored. # # Example : # BandWidth all 0 # MaxConnection all 20 # or # BandWidth all 0 # BandWidth 192.168.0.0/24 10240 # MaxConnection all 20 # MaxConnection 192.168.0.0/24 5 # # # Please, rememeber that every speed, will depend mostly on your connection. # You cant get more speed if you dont have it. # # Remember also.. if you dont follow the instructions, and get some weird # results, recheck your config before sending me an email. # # MaxConnection [From] [Max] # # BandWidthModule On # BandWidth all 16384 # LargeFileLimit * 500 4096 # # LargeFileLimit * 100 1024 # # # # This wont limit Directory / to 16384. The Directory wont "inherit" the # settings from the vhost if you use some of the mod's directives. # VirtualHost example with bandwidth limitation: # For more information, look at bw_mod documentation. # In this example, we restrict the bandwidth to 10kb # for the connections coming from localhost. # And we set the bandwidth unlimited for any other # connections. # We set maximum amount of concurrent connections as 40. # When the bandwidth is exceeded, the visitors see the # personalized error code no 510. # # # ServerAdmin webmaster@dummy-host.example.com # DocumentRoot /www/docs/dummy-host.example.com # ServerName dummy-host.example.com # ErrorLog logs/dummy-host.example.com-error_log # CustomLog logs/dummy-host.example.com-access_log common # # BandWidthModule On # BandWidthDebug Off # BandWidth localhost 10240 # BandWidth all 0 # MaxConnection all 40 # BandWidthError 510 # #