blob: e529eb1fc74591d7861b65e1fc06be62d8b604d7 [file] [log] [blame]
'+' = done, '-' = todo, '*' = done except doc
1.2.12 :
+ weighted RR/SH
1.2.13 :
+ maxconn
+ queueing
1.2.14 :
+ HTML status page
stats enable
stats uri /?stats
stats realm w.ods.org\ statistics
stats auth user1:pass1
stats auth user2:pass2
stats auth user3:pass3
stats scope <px_id> | '.'
+ allow server-less proxies (for stats)
- separate timeout controls
+ option 'abortonclose' : if the session is queued or being connecting
to the server, and the client sends a shutdown(), then decide to abort
the session early because in most situations, this will be caused by
a client hitting the 'Stop' button, so there's no reason to overload
the servers with unservable requests. However, this is not HTTP compliant
and might cause little trouble to some very specific clients used to
close immediately after sending the request (no support for KA, which ones?)
+ minconn : makes the server's maxconn dynamic, which will be computed as a
ratio of the proxy's sessions :
srv->effective_maxconn =
max(srv->maxconn * px->nbsess / px->maxconn, srv->minconn)
1.3 :
- remove unused STATTIME
- reference all the include files that must be created, possibly under subdirs :
- acl.h => more general ACL work
- appcook.h => appsession-related cookies
- backend.h => back-end part of the PR_O_* + backend definitions
- buffers.h => buffer management relying on memory.h
- capture.h => header and cookie capture
- cfgparse.h => configuration parser
- checks.h => health checks
- clireq.h => the client side "request" part of the current sessions.
- compat.h => compatibility with other OSes (TCP_NODELAY, ...)
- config.h => config parameters, renamed CONFIG_HAP_*, includes defaults.h
- controls.h => SN_CACHEABLE, ...
- cookies.h => definitions related to cookie management + SN_SCK_*
- defaults.h => many default values, might disappear soon after cleanup
- frontend.h => front-end part of the PR_O_* + client definitions + listeners
- global.h => shared global variables
- http.h => HTTP state definitions and transitions
- httperr.{hc} => HTTP return codes
- libtask.h => task scheduler
- libtime.h => time-related definitions
- loadbal.h => load balancing algorithms
- log.h => log definitions
- memory.h => pools
- polling.h => definitions of select(), poll(), INTBITS, ...
- queue.h => queue management
- regex.h => filtering
- servers.h => servers definitions (SRV_*, states, ...)
- fd.h => FD_ST* (add FD_DGRAM), RES_*, socket states, etc...
- srvreq.h => the server side "request" part of the current sessions.
- standard.h => general purpose macros and defines (eg: MIN/MAX, ...)
- startup.h => MODE_*
- tuning.h => platform-specific tuning parameters
- clarify licence by adding a 'MODULE_LICENCE("GPL")' or something equivalent.
- handle half-closed connections better (cli/srv would not distinguish
DATA/SHUTR/SHUTW, it would be a session flag which would tell shutr/shutw).
Check how it got changed in httpterm.
- 3 memory models : failsafe (prealloc), normal (current), optimal (alloc on
demand)
- wait queues replaced for priority-based trees
- ability to assign a prio based on L7 matching
- prio-based O(1) scheduler
- maxconn reserve for VIP/admins
- verify if it would be worth implementing an epoll_ctl_batch() for Linux