Emacs mode for editing pound configuration files
Major mode for editing pound configuration files in GNU Emacs is implemented in file src/pound-mode.el. Its installation and usage is covered by Chapter 11 of the Pound Manual.
Include statement accepts globbing patterns
If the argument to Include configuration statement is a shell globbing pattern, all regular files matching that pattern will be included, in lexicographical order.
New configuration statement: LineBufferSize
Sets the line buffer size. Line buffer is used when reading request line, backend response status line, and header fields in both requests and responses. Thus, this value limits the maximum length allowed for these parts of HTTP messages. By default, it is set to the internal buffer size (4096), which is also its minimum allowed value.
This statement can be used in global scope and within ListenHTTP (ListenHTTPS) sections.
TBF statement
This conditional statement implements token bucket filter. Its arguments are: the ID of the bucket (a string, subject to backreference expansion and request accessor interpretation), maximum allowed rate (requests per second) and a burst size (number of requests). The statement evaluates to true if the token bucket accepts the request and to false otherwise.
See Pound Manual, Section 4.6 "Rate-limiting", for a detailed discussion.
New request accessor: remoteip
%[remoteip 0]
expands to the real originator IP;%[remoteip 1]
expands to the IP determined from theX-Forwarded-For(or similar) header.
Originator IP for ACL matching
By default, ACLs are applied to the IP address from which the request was received. It is now possible to use the IP obtained from X-Forwarded-For header, instead. To do so, use the -forwarded option keyword, e.g.:
ACL -forwarded -file "acl.lst"
Changes in log format specifications
Expansion of %v changed
The %v specifier now expands to the host name used in the request, as obtained from the Host header, with port specification removed.
If you want the old expansion (name of the listener that served the request), use %{listener}N.
Support for new specifiers
-
%l
Reserved for future use. Expands to single dash. -
%p
Port number of the listener that served the request.
Built-in formats changed accordingly:
-
3,
vhost_combined"%v:%p %a %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\"" -
4,
combined"%a %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\"" -
5,
detailed"%v:%p %a %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\" (%{service}N -> %{backend}N) %{f}T sec"
poundctl core
This command shows core pound statistics: server time, daemon version, pid, and uptime, as well as worker threads configuration and statistics.
Openmetrics output
Metrics describing listeners and services are labeled by the listener and service names, as well as by their ordinal numbers in the
configuration.
Testsuite: optionally use multi-process model
If Perl is built without ithreads, testsuite harness switches to multi-process model.