]> git.pld-linux.org Git - packages/apache-mod_bw.git/blame - apache1-mod_bandwidth-doc.html
- HTTP group
[packages/apache-mod_bw.git] / apache1-mod_bandwidth-doc.html
CommitLineData
5128d3ce
AM
1<HTML>
2<HEAD>
3<TITLE>CohProg SaRL - Network Consulting</TITLE>
4<!--INCLUDE="/v3/template/style.txt"-->
5<style type="text/css">
6<!--
7
8TD.main {
9 background-image:url("/v3/graph/bgmain.jpg");
10}
11
12TD.top {
13 background-image:url("/v3/graph/bgtop.gif");
14}
15
16TD.normal {
17 background-image:url("/v3/graph/empty.gif");
18}
19
20DIV.ctitle {
21 font-family: arial, verdana, helvetica, sans-serif;
22 font-weight: bold;
23 font-size: 16px;
24}
25
26DIV.ctext {
27 font-family: verdana, helvetica, sans-serif;
28 font-weight: normal;
29 font-size: 12px;
30}
31
32B.ctextbold {
33 font-family: verdana, helvetica, sans-serif;
34 font-weight: bold;
35 font-size: 12px;
36}
37
38-->
39</style>
40<!--INCLUDE="/v3/javascript/script-en.txt"-->
41<style type="text/css">
42a.mlink {
43text-decoration: none;
44color: black;}
45
46.title
47{position: absolute;
48width: 100px;
49height: 25px;
50left: 0px;
51z-index: 10;
52font-family: verdana, helvetica, sans-serif;
53font-weight: bold;
54font-size: 12px;}
55
56.submenu
57{position: absolute;
58left: 90px;
59width: 120px;
60border: 1px solid black;
61margin: 0pt;
62padding: 0pt;
63color: black;
64background-color: lightgrey;
65layer-background-color: lightgrey;
66font-family: verdana, helvetica, sans-serif;
67font-size: 10px;
68visibility: hidden;}
69
70</style>
71
72<SCRIPT LANGUAGE="JavaScript">
73<!-- Original: Fredrik Fridsten (fredrik.fridsten@home.se) -->
74<!-- Web Site: http://hem.passagen.se/dred -->
75
76<!-- This script and many more are available free online at -->
77<!-- The JavaScript Source!! http://javascript.internet.com -->
78
79<!-- Begin
80
81// ADDITIONAL NOTES
82// The input variables to the toggle function are the number of the submenu to open/close,
83// starting with 0, and the number of pixels to move the objects below.
84// For example toggle(1,60) opens/closes the second submenu and moves the objects below 60 pixels.
85
86var nom = 9; // Number of menus
87var submenuheigh = 13;
88var submenuspacing = 10;
89var usePictures = 1; // use pictures? 1 = yes, 0 = no
90
91var ttls = new Array(); // An array for the title objects
92var subs = new Array(); // An array for the submenu objects
93var lastn;
94var lastmove;
95
96var mimageo = new Array();
97var mimagec = new Array();
98
99mimageo[1] = '/v3/menu/home-en.jpg';
100mimageo[2] = '/v3/menu/hosting-en.jpg';
101mimageo[3] = '/v3/menu/line-en.jpg';
102mimageo[4] = '/v3/menu/produces-en.jpg';
103mimageo[5] = '/v3/menu/consulting-en.jpg';
104mimageo[6] = '/v3/menu/support-en.jpg';
105mimageo[7] = '/v3/menu/info-en.jpg';
106mimageo[8] = '/v3/menu/webmail-en.jpg';
107mimageo[9] = '/v3/menu/mod-en.jpg';
108
109mimagec[1] = '/v3/menu/home-en.jpg';
110mimagec[2] = '/v3/menu/hosting-en.jpg';
111mimagec[3] = '/v3/menu/line-en.jpg';
112mimagec[4] = '/v3/menu/produces-en.jpg';
113mimagec[5] = '/v3/menu/consulting-en.jpg';
114mimagec[6] = '/v3/menu/support-en.jpg';
115mimagec[7] = '/v3/menu/info-en.jpg';
116mimagec[8] = '/v3/menu/webmail-en.jpg';
117mimagec[9] = '/v3/menu/mod-en.jpg';
118
119if (document.layers) {
120visible = 'show';
121hidden = 'hide';
122}
123else
124if (document.all) {
125visible = 'visible';
126hidden = 'hidden';
127}
128for (var i = 1; i <= nom; i++) {
129ttls[i] = ('title' + i);
130subs[i] = ('submenu' +i);
131}
132function picopen(n) {
133title = ('title' + n);
134pic = ('pic' + n);
135if (document.layers) {
136document.layers[title].document.images[pic].src = mimageo[n];
137}
138else if (document.all) {
139document.all(pic).src = mimageo[n];
140 }
141}
142function picclose(n) {
143title = ('title' + n);
144pic = ('pic' + n);
145if (document.layers) {
146document.layers[title].document.images[pic].src = mimagec[n];
147}
148else if (document.all) {
149document.all(pic).src = mimagec[n];
150 }
151}
152lastn = (nom + 1);
153lastmove = 0;
154function lasttoggle(n,move) {
155if (n <= nom) {
156menu = ('submenu' + n);
157if (document.layers) {
158submenu = document.layers[menu];
159}
160else if (document.all) {
161submenu = document.all(menu).style;
162}
163if (submenu.visibility == visible) {
164submenu.visibility = hidden;
165picclose(n); // Remove this if you don't use pictures
166for (var i = (n+1); i <= nom; i++) {
167if (document.layers) {
168document.layers[ttls[i]].top -= move;
169document.layers[subs[i]].top -= move;
170}
171else if (document.all) {
172document.all(ttls[i]).style.pixelTop -= move;
173document.all(subs[i]).style.pixelTop -= move;
174 }
175 }
176 }
177 }
178}
179function toggle(n,tmove) {
180move = (tmove*submenuheigh)+submenuspacing;
181menu = ('submenu' + n);
182if (document.layers) {
183submenu = document.layers[menu];
184}
185else if (document.all) {
186submenu = document.all(menu).style;
187}
188if (submenu.visibility == visible) {
189submenu.visibility = hidden;
190if (usePictures) picclose(n);
191for (var i = (n+1); i <= nom; i++) {
192if (document.layers) {
193document.layers[ttls[i]].top -= move;
194document.layers[subs[i]].top -= move;
195}
196else if (document.all) {
197document.all(ttls[i]).style.pixelTop -= move;
198document.all(subs[i]).style.pixelTop -= move;
199 }
200 }
201}
202else {
203submenu.visibility = visible;
204if (usePictures) picopen(n);
205if (lastn != n) {
206lasttoggle(lastn,lastmove);
207}
208for (var i = (n+1); i <= nom; i++) {
209if (document.layers) {
210document.layers[ttls[i]].top += move;
211document.layers[subs[i]].top += move;
212}
213if (document.all) {
214document.all(ttls[i]).style.pixelTop += move;
215document.all(subs[i]).style.pixelTop += move;
216 }
217 }
218}
219lastn = n;
220lastmove = move;
221}
222// End -->
223</script>
224
225
226<SCRIPT LANGUAGE="JavaScript">
227function open() {return true;}
228</SCRIPT>
229</HEAD>
230<!--INCLUDE="/v3/template/header.txt"-->
231<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="0000FF" VLINK="blueviolet" BACKGROUND="/v3/graph/bg.gif" TOPMARGIN="0" LEFTMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">
232<!--INCLUDE="/v3/template/top-en.txt"-->
233<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH="100%" HEIGHT="100%">
234<TR>
235 <TD VALIGN=TOP bgcolor=black width=83 height=90><img src="/v3/graph/topleft.jpg" width=83 height=90></TD>
236 <TD VALIGN=TOP bgcolor=black width=134 height=90><img src="/v3/graph/topcohprog1.jpg" width=134 height=90></TD>
237 <TD VALIGN=TOP bgcolor=black width=277 height=90 class=top><img src="/v3/graph/topcohprog2.jpg" width=277 height=90></TD>
238 <TD VALIGN=TOP width="100%" class=top><IMG SRC="/v3/graph/empty.gif" width=1 height=90></TD>
239</TR>
240<TR>
241 <TD valign=top width=83 height="100%"><img src="/v3/graph/left1.jpg" width=83 height=171></TD>
242 <TD bgcolor=white valign=top width=134 height="100%"><img src="/v3/graph/left2.jpg" width=134 height=171></TD>
243 <TD HEIGHT="100%" width="100%" colspan=2 valign=top class=main>
244<!-- Being page content -->
245<br>
246<br>
247<br>
248<br>
4e2d1f7e 249<table border=0 cellspacing=0 cellpadding=0 width="550">
5128d3ce
AM
250<tr>
251 <td class=normal colspan=3><img src="/v3/graph/blue1.gif" width=100 height=2></td>
252</tr><tr>
253 <td valign=top class=normal rowspan=2><img src="/v3/graph/blue1.gif" width=2 height=50></td>
254 <td valign=top width="100%" bgcolor="lightgrey" class=normal>
255 <table border=0 width="100%" cellpadding=20 cellspacing=0>
4e2d1f7e 256 <tr><td width="550">
5128d3ce
AM
257 <div class=ctitle>Mod_bandwidth documentation</div><P>
258 <div class=ctext>
259
260<b class=ctextbold>Installation :</b><P>
261WARNING: It is very important to give the lowest priority to mod_bandwidth
262so other modules will have the time to do their job before the documents
263are transmited ! For that reason, it is important to follow those steps :<P>
264<OL>
265<LI> <b class=ctextbold>APACI installation</b><br>
266<UL>
267 <LI>Copy the file mod_bandwidth.c to your Apache source directory.<br>
268 <LI>Run the ./configure script with the following directives : --add-module=mod_bandwidth.c \<br>--permute-module=BEGIN:bandwidth<br>
269 <LI>Compile and install Apache.<P>
270</UL>
4e2d1f7e
AM
271 <b class=ctextbold>APXS installation</b><br>
272<UL>
273 <LI>Compile the module with :<br>
274 /path_to_apache/bin/apxs -c /path/mod_bandwidth.c -o /path_to_apache/libexec/mod_bandwidth.so<br>
275 <LI>Add the following lines to your httpd.conf file :<br>
276 LoadModule bandwidth_module libexec/mod_bandwidth.so<br>
277 AddModule mod_bandwidth.c<P>
278 Those directives should be placed at the begining of the list
279 so that the module will be given the lowest priority and be
280 executed after others modules.<P>
281</UL>
282
5128d3ce
AM
283 <b class=ctextbold>Manual installation</b><br>
284<UL>
285 <LI>Copy the file mod_bandwidth.c to the "src/modules/extra" directory of your Apache sources.<br>
286 <LI>Copy the "src/Configuration.tmpl" file to "src/Configuration"<br>
287 <LI>Edit the "src/Configuration" file and add near the begining :<br>
288 AddModule modules/extra/mod_bandwidth.o<br>
289 (This is the reverse of old Apache versions)<br>
290 <LI>Run the "./Configure" script<br>
291 <LI>Compile and install Apache
292</UL>
293<P>
294<LI>Create the needed directories and make sure that they are "read/write/execute" for the user under which Apache run. By default, mod_bandwidth use the following directories but they can be changed using the BandWidthDataDir configuration directive:<P>
295 /tmp/apachebw<BR>
296 /tmp/apachebw/link<br>
297 /tmp/apachebw/master<P>
298
299 Note that if any of those directories doesn't exist, or if they can't
300 be accessed by the server, the module is totaly disabled except for
301 logging an error message in the logfile.
302<P>
303 Be careful that on some systems the content of the /tmp directory
304 is deleted at boot time or every so often by a cronjob. If that the
305 case, either disable this feature or change the location of the
306 directories used by the module using the BandWidthDataDir configuration directive.
307</OL>
308<P>
309 <b class=ctextbold>Global configuration directives :</b><P>
310
311 <UL>
312 <LI><b class=ctextbold>BandWidthDataDir</b><br>
313 Syntax : BandWidthDataDir &lt;directory&gt;<br>
314 Default : "/tmp/apachebw"<br>
315 Context : server config
316<P>
317 Sets the name of the root directory used by mod_bandwidth to store
318 its internal temporary information. Don't forget to create the needed
319 directories : &lt;directory&gt;/master and &lt;directory&gt;/link<P>
320<LI><b class=ctextbold>BandWidthModule</b><br>
321 Syntax : BandWidthModule &lt;On|Off&gt;<br>
322 Default : Off<br>
323 Context : per server config<P>
324
325 Enable or disable totaly the whole module. By default, the module is
326 disable so it is safe to compile it in the server anyway.
327<P>
328 PLEASE, NOTE THAT IF YOU SET A BANDWIDTH LIMIT INSIDE A VIRTUALHOST
329 BLOCK, YOU ALSO __NEED__ TO PUT THE "BandWidthModule On" DIRECTIVE
330 INSIDE THAT VIRTUALHOST BLOCK !
331<P>
332 IF YOU SET BANDWIDTH LIMITS INSIDE DIRECTORY BLOCKS (OUTSIDE OF
333 ANY VIRTUALHOST BLOCK), YOU ONLY NEED TO PUT THE "BandWidthModule On"
334 DIRECTIVE ONCE, OUTSIDE OF ANY VIRTUALHOST OR DIRECTORY BLOCK.
335<P>
336<LI><b class=ctextbold>BandWidthPulse</b><br>
337 Syntax : BandWidthPulse &lt;microseconds&gt;<br>
338 Default :<BR>
339 Context : per server config<P>
340
341 Change the algorithm used to calculate bandwidth and transmit data.
342 In normal mode (old mode), the module try to transmit data in packets
343 of 1KB. That mean that if the bandwidth available is of 512B, the
344 module will transmit 1KB, wait 2 seconds, transmit another 1KB and
345 so one.
346<P>
347 Seting a value with "BandWidthPulse", will change the algorithm so
348 that the server will always wait the same amount of time between
349 sending packets but the size of the packets will change.
350 The value is in microseconds.
351 For example, if you set "BandWidthPulse 1000000" (1 sec) and the
352 bandwidth available is of 512B, the sever will transmit 512B,
353 wait 1 second, transmit 512B and so on.
354<P>
355 The advantage is a smother flow of data. The disadvantage is
356 a bigger overhead of data transmited for packet header.
357 Setting too small a value (bellow 1/5 of a sec) is not realy
358 useful and will put more load on the system and generate more
359 traffic for packet header.
360<P>
361 Note also that the operating system may do some buffering on
362 it's own and so defeat the purpose of setting small values.
363<P>
364 This may be very useful on especialy crowded network connection :
365 In normal mode, several seconds may happen between the sending of
366 a full packet. This may lead to timeout or people may believe that
367 the connection is hanging. Seting a value of 1000000 (1 sec) would
368 guarantee that some data are sent every seconds...
369<P>
370</UL>
371<b class=ctextbold>Directory / VirtualServer configuration directives</b><P>
372<UL>
373<LI><b class=ctextbold>BandWidth</b><br>
374 Syntax : BandWidth &lt;domain|ip|all&gt; &lt;rate&gt;<br>
375 Default : none<BR>
376 Context : per directory, .htaccess<P>
377
378 Limit the bandwidth for files in this directory and
379 sub-directories based on the remote host &lt;domain&gt; or
380 &lt;ip&gt; address or for &lt;all&gt; remote hosts.
381 <P>
382 Ip addresses may now be specified in the network/mask format.
383 (Ie: 192.168.0.0/21 )
384 <P>
385 The &lt;rate&gt; is in Bytes/second.
386 A &lt;rate&gt; of "0" means no bandwidth limit.
387 <P>
388 Several BandWidth limits can be set for the same
389 directory to set different limits for different
390 hosts. In this case, the order of the "BandWidth"
391 keywords is important as the module will take the
392 first entry which matches the client address.
393<P>
394 Example :<br>
395 &lt;Directory /home/www&gt;<BR>
396 BandWidth ecp.fr 0<BR>
397 BandWidth 138.195 0<BR>
398 BandWidth all 1024<BR>
399 &lt;/Directory&gt;<P>
400<P>
401 This will limit the bandwith for directory /home/www and
402 all it's subdirectories to 1024Bytes/sec, except for
403 .ecp.fr or 138.195..where no limit is set.
404<P>
405<LI><b class=ctextbold>LargeFileLimit</b><br>
406 Syntax : LargeFileLimit &lt;filesize&gt; &lt;rate&gt;<br>
407 Default : none<br>
408 Context : per directory, .htaccess<P>
409
410 Set a maximal &lt;rate&gt; (in bytes/sec) to use when transfering
411 a file of &lt;filesize&gt; KBytes or more.
412<P>
413 Several "LargeFileLimit" can be set for various files sizes
414 to create range. The rate used for a given file size will be
415 the one of the matching range.
416 <P>
417 A &lt;rate&gt; of "0" mean that there isn't any limit based on
418 the size.
419<P>
420 A &lt;rate&gt; of "-1" mean that there isn't any limit for that type
421 of file. It's override even a BandWidth limit. I found this usefull
422 to give priority to very small files (html pages, very small pictures)
423 while seting limits for larger files... (users with their video files
424 can go to hell ! :)
425<P>
426 Example :<BR>
427 If the following limits are set :<BR>
428 LargeFileLimit 200 3072<BR>
429 LargeFileLimit 1024 2048<P>
430
431 That's mean that a file of less than 200KBytes won't be
432 limited based on his size. A file with a size between
433 200KBytes (included) and 1023Kbytes (included) will be
434 limited to 3072Bytes/sec and a file of 1024Kbytes or more
435 will be limited to 2048Bytes/sec.
436<P>
4e2d1f7e
AM
437<LI><b class=ctextbold>MaxConnection</b><br>
438 Syntax : MaxConnection &lt;connections&gt;<BR>
439 Default : 0 (illimited)<BR>
440 Context : per directory, .htaccess<P>
441
442 Restrict the number of maximum simultanous connections. If the
443 limit is reached, new connections will be rejected.
444
445 A value of 0 mean that there isn't any limits.
446<P>
5128d3ce
AM
447<LI><b class=ctextbold>MinBandWidth</b><br>
448 Syntax : MinBandWidth &lt;domain|ip|all&gt; &lt;rate&gt;<BR>
449 Default : all 256<BR>
450 Context : per directory, .htaccess<P>
451
452 Set a minimal bandwidth to use for transfering data. This
453 over-ride both BandWidth and LargeFileLimit rules as well
454 as the calculated rate based on the number of connections.
455<P>
456 The first argument is used in the same way as the first
457 argument of BandWidth.
458<P>
459 &lt;rate&gt; is in bytes per second.
460<P>
461 A rate of "0" explicitly means to use the default minimal
462 value (256 Bytes/sec).
463<P>
464 A rate of "-1" means that the minimal rate is equal to the
465 actual rate defined by BandWidth and LargeFileLimit.
466 In fact, that means that the final rate won't depend
467 of the number of connections but only on what was defined.
468<P>
469 Example :<br>
470 If BandWidth is set to "3072" (3KBytes/sec) and MinBandWidth
471 is set to "1024" (1KBytes/sec) that means :<BR>
472 - if there is one connection, the file will be transfered
473 at 3072 Bytes/sec.<BR>
474 - if there is two connections, each files will be transfered
475 at 1536 Bytes/sec.<BR>
476 - if there is three or more connections, each files will be
477 transfered at 1024 Bytes/sec. (Minimal of 1024 Bytes/sec).
478<P>
479 If MinBandWidth is set to "-1" that means :<BR>
480 - if there is one connection, the file will be transfered
481 at 3072 Bytes/sec.<BR>
482 - if there is two or more connections, each files will be
483 transfered at 3072 Bytes/sec. In effect, the rate doesn't
484 depend anymore on the number of connections but only on
485 the configuration values.
486<P>
487 Note that the total transfer rate will never exceed your physical
488 bandwidth limitation.
489<P>
490 Note : If both a "BandWidth" and a "LargeFileLimit" limit apply,
491 the lowest one will be used. (But never lower than the
492 "MinBandWidth" rate)
493<P>
494 If both a virtual server limit is defined and another
495 apply for a directory under this virtual server, the
496 directory limit will over-ride it.
497 <P>
498 If a limit is defined outside a Directory or VirtualHost
499 directive, it will act as default on a per virtual server
500 basis. (Ie: each virtual server will have that limit,
501 _independantly_ of the other servers)
502</UL>
503<P>
504<B class=ctextbold>Runing Apache with mod_bandwidth :</B><P>
505For correct results, it is important that there isn't any "dead" links in
506the "link" directory of mod_bandwidth when you start the server.<P>
507It may be a good idee to run the "cleanlink.pl" script we provide to
508automaticaly remove dead links<br>
509 </div>
510 </td></tr>
511 </table>
512 </td>
513 <td valign=bottom width=2 class=normal rowspan=2><img src="/v3/graph/blue1.gif" width=2 height=50></td>
514</tr><tr>
515 <td colspan=2 class=normal align=right><img src="/v3/graph/blue1.gif" width=100 height=2></td>
516</tr>
517</table>
518<!-- End page content -->
519<!--INCLUDE="/v3/template/footer-en.txt"-->
520</center>
521</TD>
522</TR>
523<TR>
524<TD COLSPAN=2>
525<div class="title" id="title1" style="top: 260px">
526<a class="mlink" href="http://www.cohprog.com/"><img name="pic1" src="/v3/menu/home-en.jpg" border="0"></a>
527</div>
528
529<div class="title" id="title2" style="top: 285px">
530<a class="mlink" href="#" onclick="javascript: toggle(2,7); return false"><img name="pic2" src="/v3/menu/hosting-en.jpg" border="0"></a>
531</div>
532
533<div class="submenu" id="submenu2" style="top: 305px">
534 <a class="mlink" href="http://www.cohprog.com/v3/webhosting/intro-en.html" ><img src="/v3/graph/arrow.jpg" border=0>Introduction</a><br>
535 <a class="mlink" href="http://www.cohprog.com/v3/webhosting/mailprices-en.html" ><img src="/v3/graph/arrow.jpg" border=0>E-mail / DNS</a><br>
536 <a class="mlink" href="http://www.cohprog.com/v3/webhosting/webprices-en.html" ><img src="/v3/graph/arrow.jpg" border=0>Hosting prices</a><br>
537 <a class="mlink" href="http://www.cohprog.com/v3/webhosting/coprices-en.html" ><img src="/v3/graph/arrow.jpg" border=0>Co-location and<br><img src="/v3/graph/empty.gif" width="9" border=0>Dedicated hosting</a><br>
538 <a class="mlink" href="http://www.cohprog.com/v3/webhosting/domain-en.html" ><img src="/v3/graph/arrow.jpg" border=0>Domain registration</a><br>
539 <a class="mlink" href="http://www.cohprog.com/v3/webhosting/whois-en.html" ><img src="/v3/graph/arrow.jpg" border=0>Domain availability</a>
540</div>
541
542<div class="title" id="title3" style="top: 310px">
543<a class="mlink" href="#" onclick="javascript: toggle(3,3); return false"><img name="pic3" src="/v3/menu/line-en.jpg" border="0"></a>
544</div>
545
546<div class="submenu" id="submenu3" style="top: 330px">
547 <a class="mlink" href="http://www.cohprog.com/v3/dsl/intro-en.html" ><img src="/v3/graph/arrow.jpg" border=0>Intoduction</a><br>
548 <a class="mlink" href="http://www.cohprog.com/v3/dsl/location-en.html" ><img src="/v3/graph/arrow.jpg" border=0>POP Locations</a><br>
549 <a class="mlink" href="http://www.cohprog.com/v3/dsl/prices-en.html" ><img src="/v3/graph/arrow.jpg" border=0>Prices</a>
550</div>
551
552<div class="title" id="title4" style="top: 335px">
553<a class="mlink" href="#" ><img name="pic4" src="/v3/menu/produces-en.jpg" border="0"></a>
554</div>
555
556<div class="submenu" id="submenu4" style="top: 355px">
557 <a class="mlink" href="" ><img src="/v3/graph/arrow.jpg" border=0>Database</a><br>
558 <a class="mlink" href="" ><img src="/v3/graph/arrow.jpg" border=0>Shopping cart</a><br>
559 <a class="mlink" href="" ><img src="/v3/graph/arrow.jpg" border=0>On-line auction</a><br>
560</div>
561
562<div class="title" id="title5" style="top: 360px">
563<a class="mlink" href="#" ><img name="pic5" src="/v3/menu/consulting-en.jpg" border="0"></a>
564</div>
565
566<div class="submenu" id="submenu5" style="top: 380px">
567 <a class="mlink" href="" ><img src="/v3/graph/arrow.jpg" border=0>Network</a><br>
568 <a class="mlink" href="" ><img src="/v3/graph/arrow.jpg" border=0>Administration</a><br>
569 <a class="mlink" href="" ><img src="/v3/graph/arrow.jpg" border=0>Development</a><br>
570</div>
571
572<div class="title" id="title6" style="top: 385px">
573<a class="mlink" href="#" onclick="javascript: toggle(6,4); return false"><img name="pic6" src="/v3/menu/support-en.jpg" border="0"></a>
574</div>
575
576<div class="submenu" id="submenu6" style="top: 405px">
577 <a class="mlink" href="http://www.cohprog.com/v3/support/linefaq-en.html" ><img src="/v3/graph/arrow.jpg" border=0>E-mail/Line FAQ</a><br>
578 <a class="mlink" href="http://www.cohprog.com/v3/support/webfaq-en.html" ><img src="/v3/graph/arrow.jpg" border=0>Webhosting FAQ</a><br>
579 <a class="mlink" href="http://www.cohprog.com/v3/support/stat-en.html" ><img src="/v3/graph/arrow.jpg" border=0>Web statistics</a><br>
580 <a class="mlink" href="mailto:support@cohprog.com" ><img src="/v3/graph/arrow.jpg" border=0>Email support</a><br>
581</div>
582
583<div class="title" id="title7" style="top: 410px">
584<a class="mlink" href="#" onclick="javascript: toggle(7,3); return false"><img name="pic7" src="/v3/menu/info-en.jpg" border="0"></a>
585</div>
586
587<div class="submenu" id="submenu7" style="top: 430px">
588 <a class="mlink" href="http://www.cohprog.com/v3/info/about-en.html" ><img src="/v3/graph/arrow.jpg" border=0>About us</a><br>
589 <a class="mlink" href="http://www.cohprog.com/v3/info/customers-en.html" ><img src="/v3/graph/arrow.jpg" border=0>Our customers</a><br>
590 <a class="mlink" href="http://www.cohprog.com/v3/info/contact-en.html" ><img src="/v3/graph/arrow.jpg" border=0>Contact us</a><br>
591</div>
592
593<div class="title" id="title8" style="top: 435px">
594<a class="mlink" href="#" onclick="javascript: toggle(8,3); return false"><img name="pic8" src="/v3/menu/webmail-en.jpg" border="0"></a>
595</div>
596
597<div class="submenu" id="submenu8" style="top: 455px">
598 <a class="mlink" href="http://webmail.cohprog.com" ><img src="/v3/graph/arrow.jpg" border=0>Login</a><br>
599 <a class="mlink" href="https://webmail.cohprog.com" ><img src="/v3/graph/arrow.jpg" border=0>Secure login</a><br>
600 <a class="mlink" href="http://www.cohprog.com/v3/webmail/help-en.html" ><img src="/v3/graph/arrow.jpg" border=0>Help</a><br>
601</div>
602
603<div class="title" id="title9" style="top: 485px">
604<a class="mlink" href="#" onclick="javascript: toggle(9,4); return false"><img name="pic9" src="/v3/menu/mod-en.jpg" border="0"></a>
605</div>
606
607<div class="submenu" id="submenu9" style="top: 505px">
608 <a class="mlink" href="http://www.cohprog.com/v3/bandwidth/intro-en.html" ><img src="/v3/graph/arrow.jpg" border=0>Introduction</a><br>
609 <a class="mlink" href="http://www.cohprog.com/v3/bandwidth/doc-en.html" ><img src="/v3/graph/arrow.jpg" border=0>Documentation</a><br>
610 <a class="mlink" href="http://www.cohprog.com/v3/bandwidth/download-en.html" ><img src="/v3/graph/arrow.jpg" border=0>Download</a><br>
611 <a class="mlink" href="http://www.cohprog.com/v3/bandwidth/faq-en.html" ><img src="/v3/graph/arrow.jpg" border=0>FAQ</a><br>
612</div>
613
614<!--INCLUDE="/v3/javascript/menu-en.txt"-->
615</TR>
616</TR>
617<tr>
618<td colspan=2><br></td>
619<td colspan=2>
620<table>
621<tr><td align=center class=normal>
622<a href="/v3/webhosting/intro-en.html">Web hosting</a> |
623<a href="/v3/dsl/intro-en.html">Leased lines</a> |
624Produces |
625Consulting |
626<a href="/v3/support/">Support</a> |
627<a href="/v3/info/about-en.html">About us</a> |
628<a href="/v3/info/contact-en.html">Contact us</a>
629</td></tr>
630<tr><td align=center class=normal>
631<a href="/v3/info/customers-en.html">Our customers</a> |
632<a href="/v3/webmail/help-en.html">Webmail</a> |
633<a href="/v3/bandwidth/intro-en.html">Apache mod_bandwidth</a>
634</td></tr>
635</table>
636<br>
637<br>
638</td>
639</tr>
640<TR>
641<TD><br></TD><TD colspan=2>
642<font size="2">Copyright &copy;2000 CohProg S&agrave;rl. All rights reserved.</font></td></tr>
643</TABLE>
644</BODY>
645</HTML>
This page took 0.184584 seconds and 4 git commands to generate.