mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-24 20:31:00 +01:00
Released version 1.5-dev1 with the following main changes :
- [BUG] stats: session rate limit gets garbaged in the stats
- [DOC] mention 'option http-server-close' effect in Tq section
- [DOC] summarize and highlight persistent connections behaviour
- [DOC] add configuration samples
- [BUG] http: dispatch and http_proxy modes were broken for a long time
- [BUG] http: the transaction must be initialized even in TCP mode
- [BUG] tcp: dropped connections must be counted as "denied" not "failed"
- [BUG] consistent hash: balance on all servers, not only 2 !
- [CONTRIB] halog: report per-server status codes, errors and response times
- [BUG] http: the transaction must be initialized even in TCP mode (part 2)
- [BUG] client: always ensure to zero rep->analysers
- [BUG] session: clear BF_READ_ATTACHED before next I/O
- [BUG] http: automatically close response if req is aborted
- [BUG] proxy: connection rate limiting was eating lots of CPU
- [BUG] http: report correct flags in case of client aborts during body
- [TESTS] refine non-regression tests and add 4 new tests
- [BUG] debug: wrong pointer was used to report a status line
- [BUG] debug: correctly report truncated messages
- [DOC] document the "dispatch" keyword
- [BUG] stick_table: fix possible memory leak in case of connection error
- [CLEANUP] acl: use 'L6' instead of 'L4' in ACL flags relying on contents
- [MINOR] accept: count the incoming connection earlier
- [CLEANUP] tcp: move some non tcp-specific layer6 processing out of proto_tcp
- [CLEANUP] client: move some ACLs away to their respective locations
- [CLEANUP] rename client -> frontend
- [MEDIUM] separate protocol-level accept() from the frontend's
- [MINOR] proxy: add a list to hold future layer 4 rules
- [MEDIUM] config: parse tcp layer4 rules (tcp-request accept/reject)
- [MEDIUM] tcp: check for pure layer4 rules immediately after accept()
- [OPTIM] frontend: tell the compiler that errors are unlikely to occur
- [MEDIUM] frontend: check for LI_O_TCP_RULES in the listener
- [MINOR] frontend: only check for monitor-net rules if LI_O_CHK_MONNET is set
- [CLEANUP] buffer->cto is not used anymore
- [MEDIUM] session: finish session establishment sequence in with I/O handlers
- [MEDIUM] session: initialize server-side timeouts after connect()
- [MEDIUM] backend: initialize the server stream_interface upon connect()
- [MAJOR] frontend: don't initialize the server-side stream_int anymore
- [MEDIUM] session: move the conn_retries attribute to the stream interface
- [MEDIUM] session: don't assign conn_retries upon accept() anymore
- [MINOR] frontend: rely on the frontend and not the backend for INDEPSTR
- [MAJOR] frontend: reorder the session initialization upon accept
- [MINOR] proxy: add an accept() callback for the application layer
- [MAJOR] frontend: split accept() into frontend_accept() and session_accept()
- [MEDIUM] stats: rely on the standard session_accept() function
- [MINOR] buffer: refine the flags that may wake an analyser up.
- [MINOR] stream_sock: don't dereference a non-existing frontend
- [MINOR] session: differenciate between accepted connections and received connections
- [MEDIUM] frontend: count the incoming connection earlier
- [MINOR] frontend: count denied TCP requests separately
- [CLEANUP] stick_table: add/clarify some comments
- [BUILD] memory: add a few missing parenthesis to the pool management macros
- [MINOR] stick_table: add support for variable-sized data
- [CLEANUP] stick_table: rename some stksess struct members to avoid confusion
- [CLEANUP] stick_table: move pattern to key functions to stick_table.c
- [MEDIUM] stick_table: add room for extra data types
- [MINOR] stick_table: add support for "conn_cum" data type.
- [MEDIUM] stick_table: don't overwrite data when storing an entry
- [MINOR] config: initialize stick tables after all the parsing
- [MINOR] stick_table: provide functions to return stksess data from a type
- [MEDIUM] stick_table: move the server ID to a generic data type
- [MINOR] stick_table: enable it for frontends too
- [MINOR] stick_table: export the stick_table_key
- [MINOR] tcp: add per-source connection rate limiting
- [MEDIUM] stick_table: separate storage and update of session entries
- [MEDIUM] stick-tables: add a reference counter to each entry
- [MINOR] session: add a pointer to the tracked counters for the source
- [CLEANUP] proto_tcp: make the config parser a little bit more flexible
- [BUG] config: report the correct proxy type in tcp-request errors
- [MINOR] config: provide a function to quote args in a more friendly way
- [BUG] stick_table: the fix for the memory leak caused a regression
- [MEDIUM] backend: support servers on 0.0.0.0
- [BUG] stick-table: correctly refresh expiration timers
- [MEDIUM] stream-interface: add a ->release callback
- [MINOR] proxy: add a "parent" member to the structure
- [MEDIUM] session: make it possible to call an I/O handler on both SI
- [MINOR] tools: add a fast div64_32 function
- [MINOR] freq_ctr: add new types and functions for periods different from 1s
- [MINOR] errors: provide new status codes for config parsing functions
- [BUG] http: denied requests must not be counted as denied resps in listeners
- [MINOR] tools: add a get_std_op() function to parse operators
- [MEDIUM] acl: make use of get_std_op() to parse intger ranges
- [MAJOR] stream_sock: better wakeup conditions on read()
- [BUG] session: analysers must be checked when SI state changes
- [MINOR] http: reset analysers to listener's, not frontend's
- [MEDIUM] session: support "tcp-request content" rules in backends
- [BUILD] always match official tags when doing git-tar
- [MAJOR] stream_interface: fix the wakeup conditions for embedded iohandlers
- [MEDIUM] buffer: make buffer_feed* support writing non-contiguous chunks
- [MINOR] tcp: src_count acl does not have a permanent result
- [MAJOR] session: add track-counters to track counters related to the session
- [MINOR] stick-table: provide a table lookup function
- [MINOR] stick-table: use suffix "_cnt" for cumulated counts
- [MEDIUM] session: move counter ACL fetches from proto_tcp
- [MEDIUM] session: add concurrent connections counter
- [MEDIUM] session: add data in and out volume counters
- [MINOR] session: add the trk_conn_cnt ACL keyword to track connection counts
- [MEDIUM] session-counters: automatically update tracked connection count
- [MINOR] session: add the trk_conn_cur ACL keyword to track concurrent connection
- [MINOR] session: add trk_kbytes_* ACL keywords to track data size
- [MEDIUM] session: add a counter on the cumulated number of sessions
- [MINOR] config: support a comma-separated list of store data types in stick-table
- [MEDIUM] stick-tables: add support for arguments to data_types
- [MEDIUM] stick-tables: add stored data argument type checking
- [MEDIUM] session counters: add conn_rate and sess_rate counters
- [MEDIUM] session counters: add bytes_in_rate and bytes_out_rate counters
- [MINOR] stktable: add a stktable_update_key() function
- [MINOR] session-counters: add a general purpose counter (gpc0)
- [MEDIUM] session-counters: add HTTP req/err tracking
- [MEDIUM] stats: add "show table [<name>]" to dump a stick-table
- [MEDIUM] stats: add "clear table <name> key <value>" to clear table entries
- [CLEANUP] stick-table: declare stktable_data_types as extern
- [MEDIUM] stick-table: make use of generic types for stored data
- [MINOR] stats: correctly report errors on "show table" and "clear table"
- [MEDIUM] stats: add the ability to dump table entries matching criteria
- [DOC] configuration: document all the new tracked counters
- [DOC] stats: document "show table" and "clear table"
- [MAJOR] session-counters: split FE and BE track counters
- [MEDIUM] tcp: accept the "track-counters" in "tcp-request content" rules
- [MEDIUM] session counters: automatically remove expired entries.
- [MEDIUM] config: replace 'tcp-request <action>' with "tcp-request connection"
- [MEDIUM] session-counters: make it possible to count connections from frontend
- [MINOR] session-counters: use "track-sc{1,2}" instead of "track-{fe,be}-counters"
- [MEDIUM] session-counters: correctly unbind the counters tracked by the backend
- [CLEANUP] stats: use stksess_kill() to remove table entries
- [DOC] update the references to session counters and to tcp-request connection
- [DOC] cleanup: split a few long lines
- [MEDIUM] http: forward client's close when abortonclose is set
- [BUG] queue: don't dequeue proxy-global requests on disabled servers
- [BUG] stats: global stats timeout may be specified before stats socket.
- [BUG] conf: add tcp-request content rules to the correct list
253 lines
6.4 KiB
RPMSpec
253 lines
6.4 KiB
RPMSpec
Summary: HA-Proxy is a TCP/HTTP reverse proxy for high availability environments
|
|
Name: haproxy
|
|
Version: 1.5-dev1
|
|
Release: 1
|
|
License: GPL
|
|
Group: System Environment/Daemons
|
|
URL: http://haproxy.1wt.eu/
|
|
Source0: http://haproxy.1wt.eu/download/1.3/src/%{name}-%{version}.tar.gz
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-root
|
|
BuildRequires: pcre-devel
|
|
Requires: /sbin/chkconfig, /sbin/service
|
|
|
|
%description
|
|
HA-Proxy is a TCP/HTTP reverse proxy which is particularly suited for high
|
|
availability environments. Indeed, it can:
|
|
- route HTTP requests depending on statically assigned cookies
|
|
- spread the load among several servers while assuring server persistence
|
|
through the use of HTTP cookies
|
|
- switch to backup servers in the event a main one fails
|
|
- accept connections to special ports dedicated to service monitoring
|
|
- stop accepting connections without breaking existing ones
|
|
- add/modify/delete HTTP headers both ways
|
|
- block requests matching a particular pattern
|
|
|
|
It needs very little resource. Its event-driven architecture allows it to easily
|
|
handle thousands of simultaneous connections on hundreds of instances without
|
|
risking the system's stability.
|
|
|
|
%prep
|
|
%setup -q
|
|
|
|
# We don't want any perl dependecies in this RPM:
|
|
%define __perl_requires /bin/true
|
|
|
|
%build
|
|
%{__make} USE_PCRE=1 DEBUG="" ARCH=%{_target_cpu} TARGET=linux26
|
|
|
|
%install
|
|
[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot}
|
|
|
|
%{__install} -d %{buildroot}%{_sbindir}
|
|
%{__install} -d %{buildroot}%{_sysconfdir}/rc.d/init.d
|
|
%{__install} -d %{buildroot}%{_sysconfdir}/%{name}
|
|
%{__install} -d %{buildroot}%{_mandir}/man1/
|
|
|
|
%{__install} -s %{name} %{buildroot}%{_sbindir}/
|
|
%{__install} -c -m 644 examples/%{name}.cfg %{buildroot}%{_sysconfdir}/%{name}/
|
|
%{__install} -c -m 755 examples/%{name}.init %{buildroot}%{_sysconfdir}/rc.d/init.d/%{name}
|
|
%{__install} -c -m 755 doc/%{name}.1 %{buildroot}%{_mandir}/man1/
|
|
|
|
%clean
|
|
[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot}
|
|
|
|
%post
|
|
/sbin/chkconfig --add %{name}
|
|
|
|
%preun
|
|
if [ $1 = 0 ]; then
|
|
/sbin/service %{name} stop >/dev/null 2>&1 || :
|
|
/sbin/chkconfig --del %{name}
|
|
fi
|
|
|
|
%postun
|
|
if [ "$1" -ge "1" ]; then
|
|
/sbin/service %{name} condrestart >/dev/null 2>&1 || :
|
|
fi
|
|
|
|
%files
|
|
%defattr(-,root,root)
|
|
%doc CHANGELOG TODO examples/*.cfg doc/haproxy-en.txt doc/haproxy-fr.txt doc/architecture.txt doc/configuration.txt
|
|
%doc %{_mandir}/man1/%{name}.1*
|
|
|
|
%attr(0755,root,root) %{_sbindir}/%{name}
|
|
%dir %{_sysconfdir}/%{name}
|
|
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/%{name}/%{name}.cfg
|
|
%attr(0755,root,root) %config %{_sysconfdir}/rc.d/init.d/%{name}
|
|
|
|
%changelog
|
|
* Wed Aug 25 2010 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.5-dev1
|
|
|
|
* Sun May 23 2010 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.5-dev0
|
|
|
|
* Sun May 16 2010 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.4.6
|
|
|
|
* Thu May 13 2010 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.4.5
|
|
|
|
* Wed Apr 7 2010 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.4.4
|
|
|
|
* Tue Mar 30 2010 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.4.3
|
|
|
|
* Wed Mar 17 2010 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.4.2
|
|
|
|
* Thu Mar 4 2010 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.4.1
|
|
|
|
* Fri Feb 26 2010 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.4.0
|
|
|
|
* Tue Feb 2 2010 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.4-rc1
|
|
|
|
* Mon Jan 25 2010 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.4-dev8
|
|
|
|
* Mon Jan 25 2010 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.4-dev7
|
|
|
|
* Fri Jan 8 2010 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.4-dev6
|
|
|
|
* Sun Jan 3 2010 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.4-dev5
|
|
|
|
* Mon Oct 12 2009 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.4-dev4
|
|
|
|
* Thu Sep 24 2009 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.4-dev3
|
|
|
|
* Sun Aug 9 2009 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.4-dev2
|
|
|
|
* Wed Jul 29 2009 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.4-dev1
|
|
|
|
* Tue Jun 09 2009 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.4-dev0
|
|
|
|
* Sun May 10 2009 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.18
|
|
|
|
* Sun Mar 29 2009 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.17
|
|
|
|
* Sun Mar 22 2009 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.16
|
|
|
|
* Sat Apr 19 2008 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.15
|
|
|
|
* Wed Dec 5 2007 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.14
|
|
|
|
* Thu Oct 18 2007 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.13
|
|
|
|
* Sun Jun 17 2007 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.12
|
|
|
|
* Sun Jun 3 2007 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.11.4
|
|
|
|
* Mon May 14 2007 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.11.3
|
|
|
|
* Mon May 14 2007 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.11.2
|
|
|
|
* Mon May 14 2007 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.11.1
|
|
|
|
* Mon May 14 2007 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.11
|
|
|
|
* Thu May 10 2007 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.10.2
|
|
|
|
* Tue May 09 2007 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.10.1
|
|
|
|
* Tue May 08 2007 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.10
|
|
|
|
* Sun Apr 15 2007 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.9
|
|
|
|
* Tue Apr 03 2007 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.8.2
|
|
|
|
* Sun Apr 01 2007 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.8.1
|
|
|
|
* Sun Mar 25 2007 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.8
|
|
|
|
* Wed Jan 26 2007 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.7
|
|
|
|
* Wed Jan 22 2007 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.6
|
|
|
|
* Wed Jan 07 2007 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.5
|
|
|
|
* Wed Jan 02 2007 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.4
|
|
|
|
* Wed Oct 15 2006 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.3
|
|
|
|
* Wed Sep 03 2006 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.2
|
|
|
|
* Wed Jul 09 2006 Willy Tarreau <w@1wt.eu>
|
|
- updated to 1.3.1
|
|
|
|
* Wed May 21 2006 Willy Tarreau <willy@w.ods.org>
|
|
- updated to 1.2.14
|
|
|
|
* Wed May 01 2006 Willy Tarreau <willy@w.ods.org>
|
|
- updated to 1.2.13
|
|
|
|
* Wed Apr 15 2006 Willy Tarreau <willy@w.ods.org>
|
|
- updated to 1.2.12
|
|
|
|
* Wed Mar 30 2006 Willy Tarreau <willy@w.ods.org>
|
|
- updated to 1.2.11.1
|
|
|
|
* Wed Mar 19 2006 Willy Tarreau <willy@w.ods.org>
|
|
- updated to 1.2.10
|
|
|
|
* Wed Mar 15 2006 Willy Tarreau <willy@w.ods.org>
|
|
- updated to 1.2.9
|
|
|
|
* Sat Jan 22 2005 Willy Tarreau <willy@w.ods.org>
|
|
- updated to 1.2.3 (1.1.30)
|
|
|
|
* Sun Nov 14 2004 Willy Tarreau <w@w.ods.org>
|
|
- updated to 1.1.29
|
|
- fixed path to config and init files
|
|
- statically linked PCRE to increase portability to non-pcre systems
|
|
|
|
* Sun Jun 6 2004 Willy Tarreau <willy@w.ods.org>
|
|
- updated to 1.1.28
|
|
- added config check support to the init script
|
|
|
|
* Tue Oct 28 2003 Simon Matter <simon.matter@invoca.ch>
|
|
- updated to 1.1.27
|
|
- added pid support to the init script
|
|
|
|
* Wed Oct 22 2003 Simon Matter <simon.matter@invoca.ch>
|
|
- updated to 1.1.26
|
|
|
|
* Thu Oct 16 2003 Simon Matter <simon.matter@invoca.ch>
|
|
- initial build
|