.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "EXT_DELAYER_ACL 8" .TH EXT_DELAYER_ACL 8 2024-04-09 "perl v5.38.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME .Vb 1 \& delayer \- Squid external ACL helper adding artificial delay to requests .Ve .SH SYNOPSIS .IX Header "SYNOPSIS" .Vb 1 \& delayer [\-\-help] [\-\-debug] [\-\-log file] [\-\-wait msec] .Ve .SH DESCRIPTION .IX Header "DESCRIPTION" Squid external acl helper; causes squid to delay responding to HTTP requests. .PP By carefully crafting the ACLs of a Squid setup it is possible to selectively delay requests received by a proxy. After the configured amount of time, it will always return "true". .SH OPTIONS .IX Header "OPTIONS" .IP "\fB\-\-help\fR or \fB\-h\fR" 12 .IX Item "--help or -h" Print help message to stdout .IP "\fB\-\-debug\fR or \fB\-d\fR" 12 .IX Item "--debug or -d" Emit debugging output to STDERR and ultimately cache.log .IP "\fB\-\-log /path/to/file\fR or \fB\-l /path/to/file\fR" 12 .IX Item "--log /path/to/file or -l /path/to/file" Emit debugging output to specified file instead of STDERR. Also turns on debugging .IP "\fB\-\-wait msec\fR or \fB\-w msec\fR" 12 .IX Item "--wait msec or -w msec" Delay each request by the specified amount of msec. Unless this option is specified, by default each submitted request will be delayed by half a second (500 msec). .SH CONFIGURATION .IX Header "CONFIGURATION" To engage it, this snippet of configuration template can be used in squid.conf: .PP .Vb 3 \& external_acl_type delayer concurrency=100000 children\-max=2 children\-startup=1 children\-idle=1 cache=10 %URI /path/to/delayer \-w 200 \& acl delay external delayer \& http_access allow acl1 acl2 acl3 delay !all .Ve .PP It is important that the acl referencing the delayer be the penultimate clause in the http_access line. It will cause delay to all requests that match all the preceding acls in the line. The !all clause at the end of the line will make it so that no traffic is authorized by this ACL, only the delay to evaluate the delay clause will be inserted before evaluating following http_access lines. It is also important to place the http_access line carefully in the sequence of all http_access_lines; it should be near the beginning, but be careful not to insert unwanted slow acls (especially proxy_auth). .PP It is possible to customize how delay is calculated for each request by modifying the "calc_delay" PERL function in the script, documentation on this is embedded in the source code comments. .SH AUTHOR .IX Header "AUTHOR" This software is written by Francesco Chemolli .SH COPYRIGHT .IX Header "COPYRIGHT" .Vb 5 \& * Copyright (C) 1996\-2023 The Squid Software Foundation and contributors \& * \& * Squid software is distributed under GPLv2+ license and includes \& * contributions from numerous individuals and organizations. \& * Please see the COPYING and CONTRIBUTORS files for details. \& \& (C) 2014 Francesco Chemolli \& \& This program is free software. You may redistribute copies of it under the \& terms of the GNU General Public License version 2, or (at your opinion) any \& later version. .Ve .SH QUESTIONS .IX Header "QUESTIONS" Questions on the usage of this program can be sent to the \fISquid Users mailing list .SH "REPORTING BUGS" .IX Header "REPORTING BUGS" Bug reports need to be made in English. See https://wiki.squid\-cache.org/SquidFaq/BugReporting for details of what you need to include with your bug report. .PP Report bugs or bug fixes using https://bugs.squid\-cache.org/ .PP Report serious security bugs to \fISquid Bugs .PP Report ideas for new improvements to the \fISquid Developers mailing list .SH "SEE ALSO" .IX Header "SEE ALSO" squid (8), GPL (7), .PP The Squid FAQ wiki https://wiki.squid\-cache.org/SquidFaq .PP The Squid Configuration Manual http://www.squid\-cache.org/Doc/config/