Re: [ANNOUNCE] haproxy 1.4-rc1

2010-02-03 Thread Cyril Bonté
Hi Willy,

Le Mercredi 3 Février 2010 00:30:42, Willy Tarreau a écrit :
 Now for the timeframe, I think that several of us still have minor
 things to merge, so what I'm proposing is that I'll still emit about
 one new RC per week, and that we declare the final one once we have
 spent about 7-10 days without observing a regression or an annoying
 bug.

Great !

 In the mean time, doc reviews and updates are welcome :-)

OK ;) then about the documentation, the summary is not 100% up to date.

--- haproxy-1.4-rc1/doc/configuration.txt   2010-02-02 10:18:28.0 
+0100
+++ haproxy-1.4-rc1-doc/doc/configuration.txt   2010-02-03 20:31:29.0 
+0100
@@ -52,7 +52,7 @@
 
 6.HTTP header manipulation
 
-7.Using ACLs
+7.Using ACLs and pattern extraction
 7.1.  Matching integers
 7.2.  Matching strings
 7.3.  Matching regular expressions (regexes)
@@ -63,6 +63,7 @@
 7.5.3.Matching at Layer 7
 7.6.  Pre-defined ACLs
 7.7.  Using ACLs to form conditions
+7.8.  Pattern extraction
 
 8.Logging
 8.1.  Log levels

-- 
Cyril Bonté



[ANNOUNCE] haproxy 1.4-rc1

2010-02-02 Thread Willy Tarreau
Hi,

OK now things have stabilized a lot, not yet in terms of code, but
at least in terms of usability. There were no bug affecting the
state machine nor data integrity since last release, which hopefully
means that we're now safe again.

This one is called 1.4-rc1, which indicates that we should be slowing
down and spending more time on regression testing than on core
development so that persons testing the RC series can get a
somewhat reliable idea about what the final one will look like.
That also means that we should try hard not to change existing
config syntax or semantics as of now. I'd still like to add the
return clause that several people have asked for, since it
should be somewhat easy to do a basic implementation for now
(only return raw files). Also, the end-to-end keep-alive is
not there (by lack of time), but maybe I'll add it as an
experimental feature before -final if it does not require to
change existing code.

In RC1, a lot of things have been added recently :
  - the server maintenance mode from Cyril Bonté, which was still
discussed a few threads before this one ; It is entered/left
by issuing disable server or enable server on the stats socket
in admin mode.

  - http authentication (server and proxy) with plain-text as well
as ciphered passwords. This can be used in ACLs, stats as well
as new http-request allow/deny/auth rules. It supports userlists
(think customers), groups and users. After a few tests, it looks
very powerful and I have already put it in front of my proxy :-)
This task was sponsored by Artegence(*) and performed by Krzysztof
Oledzki. Check the docs for examples on how to use it. For more
info on Artegence, they're here : http://www.artegence.com/

  - conditional request/response header rewriting. Many people have
asked for if/unless conditions after req*/rsp*, this was now
done. For instance it allows one to replace a header if the request
matches a certain URI, or to add a specific header depending on the
request's source. Please note that it's the first implementation
making use of response ACLs and while they appear to work as
expected, there might be surprises left.

  - anonymous ACLs declared inline. It's sometimes painful to have to
declare an ACL for one single entry. For instance :

 acl from_upload_server src 192.168.1.1
 acl is_img path_beg /img
 use_backend bk_img if is_img || from_upload_server

Now using braces, you can create an anonymous ACL where one is
expected :

 use_backend bk_img if { path_beg /img } || { src 192.168.1.1 }

It is not recommended to use that form unless it appears even less
readable/maintainable to have to declare and name the corresponding
ACLs.

  - haproxy can now indicate to a server it is being checking in what
state it sees it (up/down/maint, weight vs backend's weight, total
conns, ...). This can help where the persons operating the servers
don't have access to haproxy and have to update/reinstall servers
during production hours. Using those features, they can program a
down state and check in the logs when their change has been considered.
This is a good complement to disable-on-404.

  - HTTP/1.1 responses with status 101 switching protocol are now
handled properly by establishing a tunnel between the client and
the server after the end of both messages. This makes haproxy
compatible with some protocols such as WebSocket which make
extensive use of the GET + 101 + Upgrade mechanism.

Now for the timeframe, I think that several of us still have minor
things to merge, so what I'm proposing is that I'll still emit about
one new RC per week, and that we declare the final one once we have
spent about 7-10 days without observing a regression or an annoying
bug.

In the mean time, doc reviews and updates are welcome :-)

1.4-rc1 is currently available here :

   http://haproxy.1wt.eu/download/1.4/src/

Regards,
Willy