summaryrefslogtreecommitdiffstats
path: root/mod_bw.conf
blob: dea80d4f496e7a29f8b879c8a0bf70a506d9423f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
<IfDefine HAVE_BW>
  <IfModule !mod_bw.c>
    LoadModule bw_module    extramodules/mod_bw.so
  </IfModule>
</IfDefine>

<IfModule mod_bw.c>

# 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]

# <VirtualHost *>
#     BandWidthModule On
#     BandWidth all 16384
#     LargeFileLimit * 500 4096
# 	<Directory />
# 	    LargeFileLimit * 100 1024
# 	</Directory>
# </VirtualHost>
# 
# This wont limit Directory / to 16384. The Directory wont "inherit" the
# settings from the vhost if you use some of the mod's directives.

</IfModule>

# 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. 
#
#<VirtualHost *>
#    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
#    <IfModule mod_bw.c>   
#        BandWidthModule On
#        BandWidthDebug Off
#        BandWidth localhost 10240
#        BandWidth all 0
#        MaxConnection all 40
#        BandWidthError 510
#    </IfModule>
#</VirtualHost>