blob: e529eb1fc74591d7861b65e1fc06be62d8b604d7 [file] [log] [blame]
willy tarreau1f431b52006-05-21 14:46:15 +02001'+' = done, '-' = todo, '*' = done except doc
willy tarreau814cbc62006-05-13 13:00:29 +02002
31.2.12 :
4 + weighted RR/SH
5
61.2.13 :
7 + maxconn
8 + queueing
9
101.2.14 :
willy tarreau481132e2006-05-21 21:43:10 +020011 + HTML status page
willy tarreau1f431b52006-05-21 14:46:15 +020012
13 stats enable
14 stats uri /?stats
15 stats realm w.ods.org\ statistics
16 stats auth user1:pass1
17 stats auth user2:pass2
18 stats auth user3:pass3
19 stats scope <px_id> | '.'
willy tarreau814cbc62006-05-13 13:00:29 +020020
willy tarreau38d79062006-05-21 14:47:13 +020021 + allow server-less proxies (for stats)
22
willy tarreau814cbc62006-05-13 13:00:29 +020023 - separate timeout controls
24
willy tarreaue0bdd622006-05-21 20:51:54 +020025 + option 'abortonclose' : if the session is queued or being connecting
willy tarreau814cbc62006-05-13 13:00:29 +020026 to the server, and the client sends a shutdown(), then decide to abort
27 the session early because in most situations, this will be caused by
28 a client hitting the 'Stop' button, so there's no reason to overload
29 the servers with unservable requests. However, this is not HTTP compliant
30 and might cause little trouble to some very specific clients used to
31 close immediately after sending the request (no support for KA, which ones?)
32
willy tarreauf76e6ca2006-05-21 21:09:55 +020033 + minconn : makes the server's maxconn dynamic, which will be computed as a
willy tarreau814cbc62006-05-13 13:00:29 +020034 ratio of the proxy's sessions :
35 srv->effective_maxconn =
36 max(srv->maxconn * px->nbsess / px->maxconn, srv->minconn)
37
willy tarreau814cbc62006-05-13 13:00:29 +0200381.3 :
Willy Tarreaubaaee002006-06-26 02:48:02 +020039 - remove unused STATTIME
40
41 - reference all the include files that must be created, possibly under subdirs :
42
43 - acl.h => more general ACL work
44 - appcook.h => appsession-related cookies
45 - backend.h => back-end part of the PR_O_* + backend definitions
46 - buffers.h => buffer management relying on memory.h
47 - capture.h => header and cookie capture
48 - cfgparse.h => configuration parser
49 - checks.h => health checks
50 - clireq.h => the client side "request" part of the current sessions.
51 - compat.h => compatibility with other OSes (TCP_NODELAY, ...)
52 - config.h => config parameters, renamed CONFIG_HAP_*, includes defaults.h
53 - controls.h => SN_CACHEABLE, ...
54 - cookies.h => definitions related to cookie management + SN_SCK_*
55 - defaults.h => many default values, might disappear soon after cleanup
56 - frontend.h => front-end part of the PR_O_* + client definitions + listeners
57 - global.h => shared global variables
58 - http.h => HTTP state definitions and transitions
59 - httperr.{hc} => HTTP return codes
60 - libtask.h => task scheduler
61 - libtime.h => time-related definitions
62 - loadbal.h => load balancing algorithms
63 - log.h => log definitions
64 - memory.h => pools
65 - polling.h => definitions of select(), poll(), INTBITS, ...
66 - queue.h => queue management
67 - regex.h => filtering
68 - servers.h => servers definitions (SRV_*, states, ...)
69 - fd.h => FD_ST* (add FD_DGRAM), RES_*, socket states, etc...
70 - srvreq.h => the server side "request" part of the current sessions.
71 - standard.h => general purpose macros and defines (eg: MIN/MAX, ...)
72 - startup.h => MODE_*
73 - tuning.h => platform-specific tuning parameters
74
75
76 - clarify licence by adding a 'MODULE_LICENCE("GPL")' or something equivalent.
77
78
willy tarreau814cbc62006-05-13 13:00:29 +020079 - handle half-closed connections better (cli/srv would not distinguish
80 DATA/SHUTR/SHUTW, it would be a session flag which would tell shutr/shutw).
81 Check how it got changed in httpterm.
82
83 - 3 memory models : failsafe (prealloc), normal (current), optimal (alloc on
84 demand)
85
86 - wait queues replaced for priority-based trees
87
88 - ability to assign a prio based on L7 matching
89
90 - prio-based O(1) scheduler
91
92 - maxconn reserve for VIP/admins
93
94 - verify if it would be worth implementing an epoll_ctl_batch() for Linux
95