77 lines
2.4 KiB
Plaintext
77 lines
2.4 KiB
Plaintext
Medium-long term wish list - updated 2019/06/15
|
|
|
|
Legend: '+' = done, '-' = todo, '*' = done except doc
|
|
|
|
2.1 or later :
|
|
- return-html code xxx [ file "xxx" | text "xxx" ] if <acl>
|
|
|
|
- return-raw [ file "xxx" | text "xxx" ] if <acl>
|
|
|
|
- have multi-criteria analysers which subscribe to req flags, rsp flags, and
|
|
stream interface changes. This would result in a single analyser to wait
|
|
for the end of data transfer in HTTP.
|
|
|
|
- make it possible to condition a timeout on an ACL (dynamic timeouts)
|
|
|
|
- forwardfor/originalto except with IPv6
|
|
|
|
- tcp-request session expect-proxy {L4|L5} if ...
|
|
|
|
- wait on resource (time, mem, CPU, socket, server's conn, server's rate, ...)
|
|
|
|
- bandwidth limits
|
|
|
|
- buddy servers to build defined lists of failovers. Detect loops during
|
|
the config check.
|
|
|
|
server XXX buddy YYY
|
|
server YYY # may replace XXX when XXX fails
|
|
|
|
- spare servers : servers which are used in LB only when a minimum farm
|
|
weight threshold is not satisfied anymore. Useful for inter-site LB with
|
|
local pref by default.
|
|
|
|
- add support for event-triggered epoll, and maybe change all events handling
|
|
to pass through an event cache to handle temporarily disabled events.
|
|
|
|
- evaluate the changes required for multi-process+shared mem or multi-thread
|
|
+thread-local+fast locking.
|
|
|
|
Old, maybe obsolete points :
|
|
- clarify licence by adding a 'MODULE_LICENCE("GPL")' or something equivalent.
|
|
|
|
- 3 memory models : failsafe (prealloc), normal (current), optimal (alloc on
|
|
demand)
|
|
|
|
- verify if it would be worth implementing an epoll_ctl_batch() for Linux
|
|
|
|
- option minservers XXX : activates some spare servers when active servers
|
|
are insufficient
|
|
|
|
- initcwnd parameter for bind sockets : needed in kernel first
|
|
|
|
- have a callback function which would be called after a server is selected,
|
|
for header post-processing. That would be mainly used to remove then add
|
|
the server's name or cookie in a header so that the server knows it.
|
|
|
|
Unsorted :
|
|
- internal socket for "server XXX frontend:name"
|
|
|
|
- XML inspection (content-switching for SOAP requests)
|
|
|
|
- random cookie generator
|
|
|
|
- fastcgi to servers
|
|
|
|
- hot config reload
|
|
|
|
- RHI - BGP
|
|
|
|
- telnet/SSH cli
|
|
|
|
- dynamic memory allocation
|
|
|
|
- dynamic weights based on check response headers and traffic response time
|
|
|
|
- various kernel-level acceleration (multi-accept, ssplice, epoll2...)
|