mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-03-03 10:01:27 +00:00
haproxy public development tree
Released version 1.4-dev1 with the following main changes : - [MINOR] acl: add support for matching of RDP cookies - [MEDIUM] add support for RDP cookie load-balancing - [MEDIUM] add support for RDP cookie persistence - [MINOR] add a new CLF log format - [MINOR] startup: don't imply -q with -D - [BUG] ensure that we correctly re-start old process in case of error - [MEDIUM] add support for binding to source port ranges during connect - [MINOR] config: track "no option"/"option" changes - [MINOR] config: support resetting options do default values - [MEDIUM] implement option tcp-smart-accept at the frontend - [MEDIUM] stream_sock: implement tcp-cork for use during shutdowns on Linux - [MEDIUM] implement tcp-smart-connect option at the backend - [MEDIUM] add support for TCP MSS adjustment for listeners - [MEDIUM] support setting a server weight to zero - [MINOR] make DEFAULT_MAXCONN user-configurable at build time - [MAJOR] session: don't clear buffer status flags anymore - [MAJOR] session: only check for timeouts when they have just occurred. - [MAJOR] session: simplify buffer error handling - [MEDIUM] config: split parser and checker in two functions - [MEDIUM] config: support loading multiple configuration files - [MEDIUM] stream_sock: don't close prematurely when nolinger is set - [MEDIUM] session: rework buffer analysis to permit permanent analysers - [MEDIUM] splice: set the capability on each stream_interface - [BUG] http: redirect rules were processed too early - [CLEANUP] remove unused DEBUG_PARSE_NO_SPEEDUP define - [MEDIUM] http: split request waiter from request processor - [MEDIUM] session: tell analysers what bit they were called for - [MAJOR] http: complete splitting of the remaining stages - [MINOR] report in the proxies the requirements for ACLs - [MINOR] http: rely on proxy->acl_requires to allocate hdr_idx - [MINOR] acl: add HTTP protocol detection (req_proto_http) - [MINOR] prepare callers of session_set_backend to handle errors - [BUG] default ACLs did not properly set the ->requires flag - [MEDIUM] allow a TCP frontend to switch to an HTTP backend - [MINOR] ensure we can jump from swiching rules to http without data - [MINOR] http: take http request timeout from the backend - [MINOR] allow TCP inspection rules to make use of HTTP ACLs - [BUILD] report commit date and not author's date as build date - [MINOR] acl: don't complain anymore when using L7 acls in TCP - [BUG] stream_sock: always shutdown(SHUT_WR) before closing - [BUG] stream_sock: don't stop reading when the poller reports an error - [BUG] config: tcp-request content only accepts "if" or "unless" - [BUG] task: fix possible timer drift after update - [MINOR] apply tcp-smart-connect option for the checks too - [MINOR] stats: better displaying in MSIE - [MINOR] config: improve error reporting in global section - [MINOR] config: improve error reporting in listen sections - [MINOR] config: the "capture" keyword is not allowed in backends - [MINOR] config: improve error reporting when checking configuration - [BUILD] fix a minor build warning on AIX - [BUILD] use "git cmd" instead of "git-cmd" - [CLEANUP] report 2009 not 2008 in the copyright banner. - [MINOR] print usage on the stats sockets upon invalid commands - [MINOR] acl: detect and report potential mistakes in ACLs - [BUILD] fix incorrect printf arg count with tcp_splice - [BUG] fix random pauses on last segment of a series - [BUILD] add support for build under Cygwin |
||
---|---|---|
contrib | ||
doc | ||
examples | ||
include | ||
src | ||
tests | ||
.gitignore | ||
CHANGELOG | ||
CONTRIB | ||
LICENSE | ||
Makefile | ||
Makefile.bsd | ||
Makefile.osx | ||
README | ||
ROADMAP | ||
SUBVERS | ||
TODO | ||
VERDATE | ||
VERSION |
------------------- H A - P r o x y How to build it ------------------- version 1.3.15 willy tarreau 2008/05/25 To build haproxy, you will need : - GNU make. Neither Solaris nor OpenBSD's make work with this makefile. However, specific Makefiles for BSD and OSX are provided. - GCC between 2.91 and 4.3. Others may work, but not tested. - GNU ld Also, you might want to build with libpcre support, which will provide a very efficient regex implementation and will also fix some badness on Solaris's one. To build haproxy, you have to choose your target OS amongst the following ones and assign it to the TARGET variable : - linux22 for Linux 2.2 - linux24 for Linux 2.4 and above (default) - linux24e for Linux 2.4 with support for a working epoll (> 0.21) - linux26 for Linux 2.6 and above - solaris for Solaris 8 or 10 (others untested) - freebsd for FreeBSD 5 to 6.2 (others untested) - openbsd for OpenBSD 3.1 to 3.7 (others untested) - cygwin for Cygwin - generic for any other OS. - custom to manually adjust every setting You may also choose your CPU to benefit from some optimizations. This is particularly important on UltraSparc machines. For this, you can assign one of the following choices to the CPU variable : - i686 for intel PentiumPro, Pentium 2 and above, AMD Athlon - i586 for intel Pentium, AMD K6, VIA C3. - ultrasparc : Sun UltraSparc I/II/III/IV processor - generic : any other processor or no specific optimization. (default) Alternatively, you may just set the CPU_CFLAGS value to the optimal GCC options for your platform. You may want to build specific target binaries which do not match your native compiler's target. This is particularly true on 64-bit systems when you want to build a 32-bit binary. Use the ARCH variable for this purpose. Right now it only knows about a few x86 variants (i386,i486,i586,i686,x86_64) and sets -m32/-m64 as well as -march=<arch> accordingly. If your system supports PCRE (Perl Compatible Regular Expressions), then you really should build with libpcre which is between 2 and 10 times faster than other libc implementations. Regex are used for header processing (deletion, rewriting, allow, deny). The only inconvenient of libpcre is that it is not yet widely spread, so if you build for other systems, you might get into trouble if they don't have the dynamic library. In this situation, you should statically link libpcre into haproxy so that it will not be necessary to install it on target systems. Available build options for PCRE are : - USE_PCRE=1 to use libpcre, in whatever form is available on your system (shared or static) - USE_STATIC_PCRE=1 to use a static version of libpcre even if the dynamic one is available. This will enhance portability. - with no option, use your OS libc's standard regex implemntation (default). Warning! group references on Solaris seem broken. Use static-pcre whenever possible. By default, the DEBUG variable is set to '-g' to enable debug symbols. It is not wise to disable it on uncommon systems, because it's often the only way to get a complete core when you need one. Otherwise, you can set DEBUG to '-s' to strip the binary. For example, I use this to build for Solaris 8 : $ make TARGET=solaris CPU=ultrasparc USE_STATIC_PCRE=1 And I build it this way on OpenBSD or FreeBSD : $ make -f Makefile.bsd REGEX=pcre DEBUG= COPTS.generic="-Os -fomit-frame-pointer -mgnu" In order to build a 32-bit binary on an x86_64 Linux system : $ make TARGET=linux26 ARCH=i386 If you need to pass other defines, includes, libraries, etc... then please check the Makefile to see which ones will be available in your case, and use the USE_* variables in the GNU Makefile, or ADDINC, ADDLIB, and DEFINE variables in the BSD makefiles. -- end