Commit Graph

3458 Commits

Author SHA1 Message Date
Willy Tarreau
791d66d363 [MINOR] added lots of Content-Type: text/html to HTML responses and stats.
This suggestion from Cameron Simpson is perfectly valid and should have been
implemented from the beginning.
2006-07-09 16:13:17 +02:00
Willy Tarreau
b9e98b6836 [RELEASE] version 1.3.0
Released version 1.3.0 which differs from 1.2.14 only by the fact
that the code is now classed in multiple .c and .h files.
2006-07-03 10:32:46 +02:00
Willy Tarreau
e3ba5f0aaa [CLEANUP] included common/version.h everywhere 2006-06-29 18:54:54 +02:00
Willy Tarreau
2dd0d4799e [CLEANUP] renamed include/haproxy to include/common 2006-06-29 17:53:05 +02:00
Willy Tarreau
baaee00406 [BIGMOVE] exploded the monolithic haproxy.c file into multiple files.
The files are now stored under :
  - include/haproxy for the generic includes
  - include/types.h for the structures needed within prototypes
  - include/proto.h for function prototypes and inline functions
  - src/*.c for the C files

Most include files are now covered by LGPL. A last move still needs
to be done to put inline functions under GPL and not LGPL.

Version has been set to 1.3.0 in the code but some control still
needs to be done before releasing.
2006-06-26 02:48:02 +02:00
Willy TARREAU
0028339317 [BUILD] fixed build on alpha-linux + epoll 2006-06-17 00:04:47 +02:00
Willy TARREAU
3dc0644167 [LICENSE] licensing clarifications 2006-06-15 21:48:13 +02:00
willy tarreau
ccf454ac70 [BUG] neither stats nor error messages could be returned without clitimeout 2006-06-15 21:00:47 +02:00
Willy Tarreau
94b4591f20 [DOC] renamed 'haproxy' instead of 'ha-proxy' or 'h a p r o x y'
File indexation systems (including search engines) did not read
'haproxy' when needed, which made it more difficult to find the
doc on the net.
2006-05-31 06:40:15 +02:00
willy tarreau
7e6328df2a [RELEASE] released 1.2.14
Released 1.2.14 with the following changes :

   - new HTML status report with the 'stats' keyword.
   - added the 'abortonclose' option to better resist traffic surges
   - implemented dynamic traffic regulation with the 'minconn' option
   - show request time on denied requests
   - definitely fixed hot reconf on OpenBSD by the use of SO_REUSEPORT
   - now a proxy instance is allowed to run without servers, which is
     useful to dedicate one instance to stats
   - added lots of error counters
   - a missing parenthesis preventd matching of cacheable cookies
   - a missing parenthesis in poll_loop() might have caused missed events.
2006-05-21 23:26:20 +02:00
willy tarreau
8f635a4feb [DOC] french doc update 2006-05-21 23:05:54 +02:00
willy tarreau
8cd311407e [MINOR] display "<STATS>" in the logs for statistics access. 2006-05-21 22:08:00 +02:00
willy tarreau
2b598cc00a [MINOR] always ensure that minconn < maxconn or override it. 2006-05-21 22:07:31 +02:00
willy tarreau
d4ba08d7ca [DOC] add some informations about 'stats' and 'option httpclose'. 2006-05-21 21:54:14 +02:00
willy tarreau
052c15dbe6 Merge branch 'abort-close' into merge 2006-05-21 21:43:58 +02:00
willy tarreau
481132e07c [DOC] documented the 'stats' parameter. 2006-05-21 21:43:10 +02:00
willy tarreau
12e0212448 Merge branch 'minconn' into abort-close 2006-05-21 21:11:03 +02:00
willy tarreau
f76e6cad83 [MAJOR] implemented the 'minconn' server parameter for dynamic load regulation
When 'minconn' is set, the number of simultaneous sessions sent to the server
will be limited by a dynamic value depending on the global load on the
instance itself. The principle is to fix the maximal concurrency on the server
proportionnally to the instance's usage relative to its maxconn, with a minimum
fixed to <minconn>. The formula for the number of simultaneous sessions sent
to the server is then max(srv_minconn, srv_maxconn*px_conn/px_maxconn). This
helps unloading the servers when the load is very low.
2006-05-21 21:09:55 +02:00
willy tarreau
e0bdd62128 [DOC] documented the 'abortonclose' option 2006-05-21 20:51:54 +02:00
willy tarreau
03a92de772 [MEDIUM] added the 'abortonclose' option.
When this option is enabled, a session will be destroyed immediately if
a client closes during ST_IDLE or ST_CONN states.
2006-05-21 18:26:53 +02:00
willy tarreau
606788e4d5 [MAJOR] missing parenthesis in poll_loop() might have caused missed events. 2006-05-21 16:26:20 +02:00
willy tarreau
7476ec9876 [MAJOR] missing parenthesis prevented matching of cacheable cookies ! 2006-05-21 16:24:15 +02:00
willy tarreau
e3b3065877 [MEDIUM] added counters for connect/response/security errors 2006-05-21 16:23:22 +02:00
willy tarreau
38d79062b3 [MINOR] allow a proxy instance to run without any server (useful for stats) 2006-05-21 14:47:13 +02:00
willy tarreau
1f431b5851 [MEDIUM] the stats dump FSM was buggy and looped on dispatch instances.
It has been rewritten and now supports an initialization state. It now also
prevents from dumping stopped(disabled) listeners and it is possible to
specify a scope with a list of proxies that are allowed to be dumped from
the one being configured ('.' meaning "this one"). The 'stats' entry can
be configured from the 'defaults' instance and it is correctly flushed
from proxies which redefine it.
2006-05-21 14:46:15 +02:00
willy tarreau
fac1a86495 [MEDIUM] hopefully definitely fixed hot-reconf for OpenBSD 2006-05-21 10:20:28 +02:00
willy tarreau
338be83aea [MINOR] cosmetic changes in the stats interface 2006-05-21 08:58:06 +02:00
willy tarreau
2d505e5754 [CRITICAL] potential NULL dereference when counting stats in dispatch mode 2006-05-21 08:32:50 +02:00
willy tarreau
47ee7ad0a4 [MINOR] also set request time on denied requests 2006-05-18 01:25:36 +02:00
willy tarreau
950609c39c [MINOR] set request time even for stats requests 2006-05-18 01:23:51 +02:00
willy tarreau
d0a05bd220 [BUILD] updated Makefile.bsd for the new files 2006-05-18 01:22:27 +02:00
willy tarreau
cb4065148c [MEDIUM] completed HTML status output, fixed some rendering bugs.
Removed one missed debugging write(), fixed buffer management.
Now the HTML table output uses a color code with a caption. Some
more statistics have been collected such as maximum values reached
and failed health checks. Null limits now show "-" instead of "0".
2006-05-18 00:52:35 +02:00
willy tarreau
e033126130 [MEDIUM] first working code for an HTML status report. 2006-05-15 03:02:46 +02:00
willy tarreau
51e912947e [DOC] missing comment caused misinterpretation 2006-05-14 23:29:47 +02:00
willy tarreau
3504a01cb4 [DEBUG] state names were shifted due to missing PEND state. 2006-05-14 23:20:07 +02:00
willy tarreau
9e1388671a [MEDIUM] added the new 'stats' keyword with user authentication subsystem.
Right now it only validates the user/passwd according to a specified list,
and lets the user pass through the proxy if the authentication is OK, and
it refuses any invalid access with a 401 Unauthorized response.
2006-05-14 23:06:28 +02:00
Willy TARREAU
4404b7ebcc [RELEASE] released version 1.2.13.1
- an uninitialized field in the struct session could cause a crash when
     the session was freed. This has been encountered on Solaris only.
   - Solaris and OpenBSD no not support shutdown() on listening socket. Let's
     be nice to them by performing a soft stop if pause fails.
2006-05-14 10:00:09 +02:00
Willy TARREAU
007aa4606e [MEDIUM] perform a soft stop when pause fails to be nice with non-Linux systems.
At least OpenBSD and Solaris do not support shutdown() on listening socket.
So instead of blocking the hot reconfiguration, at least we can perform a
soft stop if the shutdown fails, so that the new daemon can bind to the
ports without trouble.
2006-05-14 09:55:23 +02:00
Willy TARREAU
1a71cc14c9 [CRITICAL] fixed an uninitialized 'pend_pos' field in struct session.
This might cause random crashes when memory is not initialized first.
Encountered on Solaris 8 only for now, OpenBSD and Linux seem unaffected.
2006-05-14 09:10:03 +02:00
willy tarreau
c3a2e0713f [RELEASE] released version 1.2.13
Summary of changes :
   - 'maxconn' server parameter to do per-server session limitation
   - queueing to support non-blocking session limitation
   - fixed removal of cookies for cookie-less servers such as backup servers
   - two separate wait queues for expirable and non-expirable tasks provide
     better performance with lots of sessions.
   - some code cleanups and performance improvements
   - made state dumps a bit more verbose
   - fixed missing checks for NULL srv in dispatch mode
   - load balancing on backup servers was not possible in source hash mode.
   - two session flags shared the same bit, but fortunately they were not
     compatible.
2006-05-13 18:51:38 +02:00
willy tarreau
532bb554aa [DOC] update documentation to explain the server's maxconn 2006-05-13 18:40:37 +02:00
willy tarreau
5f15c5517a [MINOR] the queue time was missing from TCP logs. 2006-05-13 18:37:04 +02:00
willy tarreau
424e04a32b [MINOR] do not report queue time if not queued ! 2006-05-13 16:10:47 +02:00
willy tarreau
814cbc6a72 [DOC] added (and updated) the ROADMAP file 2006-05-13 13:00:29 +02:00
willy tarreau
078c79a009 [MINOR] make logs more accurate about expiration and close during queue. 2006-05-13 12:23:58 +02:00
willy tarreau
5e69b1610f [MINOR] separately display the server and proxy queue sizes in the logs 2006-05-12 19:49:37 +02:00
willy tarreau
9fea194154 [CLEANUP] remove the unused SV_STCPEND state 2006-05-12 19:46:40 +02:00
willy tarreau
59a6cc2d73 [CRITICAL] fix a crashing trouble with the maxconn limits.
If a task was queued on a server and if this task was alone and aborted
before any other task did anything, there were situations by which it
might have queued itself in the run queue, then exited, and the upcoming
tv_queue() associated to the run loop would have resurrected it siently,
causing crashes in task_queue.

The new principle consists in assigning a task to every server that
needs a connection limit. This task will be woken up every time we
suspect we might leave some place to queue a task. The server's task
itself will only have to run across its queue and run the available
number of tasks.
2006-05-12 11:05:57 +02:00
willy tarreau
000375f0bb [CLEANUP] added some comments at some complex places 2006-05-12 11:05:54 +02:00
willy tarreau
422bb2e79f [MEDIUM] in the request, always consider empty cookies as invalid.
This solves a problem of unwanted stickyness to backup servers when some
clients incidentely memorize an empty cookie.
2006-05-10 04:27:21 +02:00