[RELEASE] Released version 1.3.12 with the following main changes :
- acl: smarter integer comparison support in ACLs - acl: specify the direction during fetches - acl: provide the argument length for fetch functions - acl: provide a reference to the expr to fetch() - acl: implement matching on header values - acl: support maching on 'path' component - acl: permit to return any header when no name specified - errorfile: use a local file to feed error messages - negation in ACL conds was not cleared between terms - fix segfault at exit when using captures - improve memory freeing upon exit - acl: support '-i' to ignore case when matching - str2net() must not change the const char * - provide default ACLs - acl: distinguish between request and response headers - added the 'use_backend' keyword for full content-switching - acl: added the TRUE and FALSE ACLs. - shut warnings 'is*' macros from ctype.h on solaris
This commit is contained in:
parent
8f8e645066
commit
b21152be7a
19
CHANGELOG
19
CHANGELOG
@ -1,6 +1,25 @@
|
|||||||
ChangeLog :
|
ChangeLog :
|
||||||
===========
|
===========
|
||||||
|
|
||||||
|
2007/06/17 : 1.3.12
|
||||||
|
- fix segfault at exit when using captures
|
||||||
|
- bug: negation in ACL conds was not cleared between terms
|
||||||
|
- errorfile: use a local file to feed error messages
|
||||||
|
- acl: support '-i' to ignore case when matching
|
||||||
|
- acl: smarter integer comparison with operators eq,lt,gt,le,ge
|
||||||
|
- acl: support maching on 'path' component
|
||||||
|
- acl: implement matching on header values
|
||||||
|
- acl: distinguish between request and response headers
|
||||||
|
- acl: permit to return any header when no name specified
|
||||||
|
- acl: provide default ACLs
|
||||||
|
- added the 'use_backend' keyword for full content-switching
|
||||||
|
- acl: specify the direction during fetches
|
||||||
|
- acl: provide the argument length for fetch functions
|
||||||
|
- acl: provide a reference to the expr to fetch()
|
||||||
|
- improve memory freeing upon exit
|
||||||
|
- str2net() must not change the const char *
|
||||||
|
- shut warnings 'is*' macros from ctype.h on solaris
|
||||||
|
|
||||||
2007/06/03 : 1.3.11.4
|
2007/06/03 : 1.3.11.4
|
||||||
- do not re-arm read timeout in SHUTR state !
|
- do not re-arm read timeout in SHUTR state !
|
||||||
- optimize I/O by detecting system starvation
|
- optimize I/O by detecting system starvation
|
||||||
|
4
Makefile
4
Makefile
@ -120,9 +120,9 @@ VERDATE := $(shell date +%Y/%m/%d -d "`git-log HEAD^.. 2>/dev/null | grep -m 1 ^
|
|||||||
else
|
else
|
||||||
# Otherwise, use the hard-coded version of last tag, number of changes
|
# Otherwise, use the hard-coded version of last tag, number of changes
|
||||||
# since last tag, and release date.
|
# since last tag, and release date.
|
||||||
VERSION := 1.3.11.4
|
VERSION := 1.3.12
|
||||||
SUBVERS :=
|
SUBVERS :=
|
||||||
VERDATE := 2007/06/03
|
VERDATE := 2007/06/17
|
||||||
endif
|
endif
|
||||||
|
|
||||||
#### build options
|
#### build options
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# You should use it this way :
|
# You should use it this way :
|
||||||
# make TARGET=os CPU=cpu
|
# make TARGET=os CPU=cpu
|
||||||
|
|
||||||
VERSION := 1.3.11.4
|
VERSION := 1.3.12
|
||||||
|
|
||||||
# Select target OS. TARGET must match a system for which COPTS and LIBS are
|
# Select target OS. TARGET must match a system for which COPTS and LIBS are
|
||||||
# correctly defined below.
|
# correctly defined below.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# You should use it this way :
|
# You should use it this way :
|
||||||
# make TARGET=os CPU=cpu
|
# make TARGET=os CPU=cpu
|
||||||
|
|
||||||
VERSION := 1.3.11.4
|
VERSION := 1.3.12
|
||||||
|
|
||||||
# Select target OS. TARGET must match a system for which COPTS and LIBS are
|
# Select target OS. TARGET must match a system for which COPTS and LIBS are
|
||||||
# correctly defined below.
|
# correctly defined below.
|
||||||
|
130
examples/acl-content-sw.cfg
Normal file
130
examples/acl-content-sw.cfg
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
# This sample configuration makes extensive use of the ACLs. It requires
|
||||||
|
# HAProxy version 1.3.12 minimum.
|
||||||
|
|
||||||
|
global
|
||||||
|
log loghost local0
|
||||||
|
log localhost local0 err
|
||||||
|
maxconn 250
|
||||||
|
uid 71
|
||||||
|
gid 71
|
||||||
|
chroot /var/empty
|
||||||
|
pidfile /var/run/haproxy.pid
|
||||||
|
daemon
|
||||||
|
quiet
|
||||||
|
|
||||||
|
frontend http-in
|
||||||
|
bind :80
|
||||||
|
mode http
|
||||||
|
log global
|
||||||
|
clitimeout 30000
|
||||||
|
option httplog
|
||||||
|
option dontlognull
|
||||||
|
#option logasap
|
||||||
|
option httpclose
|
||||||
|
maxconn 100
|
||||||
|
|
||||||
|
capture request header Host len 20
|
||||||
|
capture request header User-Agent len 16
|
||||||
|
capture request header Content-Length len 10
|
||||||
|
capture request header Referer len 20
|
||||||
|
capture response header Content-Length len 10
|
||||||
|
|
||||||
|
# block any unwanted source IP addresses or networks
|
||||||
|
acl forbidden_src src 0.0.0.0/7 224.0.0.0/3
|
||||||
|
acl forbidden_src src_port 0:1023
|
||||||
|
block if forbidden_src
|
||||||
|
|
||||||
|
# block requests beginning with http:// on wrong domains
|
||||||
|
acl dangerous_pfx url_beg -i http://
|
||||||
|
acl valid_pfx url_reg -i ^http://[^/]*1wt\.eu/
|
||||||
|
block if dangerous_pfx !valid_pfx
|
||||||
|
|
||||||
|
# block apache chunk exploit, ...
|
||||||
|
acl forbidden_hdrs hdr_sub(transfer-encoding) -i chunked
|
||||||
|
acl forbidden_hdrs hdr_beg(host) -i apache- localhost
|
||||||
|
|
||||||
|
# ... some HTTP content smugling and other various things
|
||||||
|
acl forbidden_hdrs hdr_cnt(host) gt 1
|
||||||
|
acl forbidden_hdrs hdr_cnt(content-length) gt 1
|
||||||
|
acl forbidden_hdrs hdr_val(content-length) lt 0
|
||||||
|
acl forbidden_hdrs hdr_cnt(proxy-authorization) gt 0
|
||||||
|
block if forbidden_hdrs
|
||||||
|
|
||||||
|
# block annoying worms that fill the logs...
|
||||||
|
acl forbidden_uris url_reg -i .*(\.|%2e)(\.|%2e)(%2f|%5c|/|\\\\)
|
||||||
|
acl forbidden_uris url_sub -i %00 <script xmlrpc.php
|
||||||
|
acl forbidden_uris path_end -i /root.exe /cmd.exe /default.ida /awstats.pl .asp .dll
|
||||||
|
|
||||||
|
# block other common attacks (awstats, manual discovery...)
|
||||||
|
acl forbidden_uris path_dir -i chat main.php read_dump.php viewtopic.php phpbb sumthin horde _vti_bin MSOffice
|
||||||
|
acl forbidden_uris url_reg -i (\.php\?temppath=|\.php\?setmodules=|[=:]http://)
|
||||||
|
block if forbidden_uris
|
||||||
|
|
||||||
|
# we rewrite the "options" request so that it only tries '*', and we
|
||||||
|
# only report GET, HEAD, POST and OPTIONS as valid methods
|
||||||
|
reqirep ^OPTIONS\ /.*HTTP/1\.[01]$ OPTIONS\ \\*\ HTTP/1.0
|
||||||
|
rspirep ^Allow:\ .* Allow:\ GET,\ HEAD,\ POST,\ OPTIONS
|
||||||
|
|
||||||
|
acl host_demo hdr_beg(host) -i demo.
|
||||||
|
acl host_www2 hdr_beg(host) -i www2.
|
||||||
|
|
||||||
|
use_backend demo if host_demo
|
||||||
|
use_backend www2 if host_www2
|
||||||
|
default_backend www
|
||||||
|
|
||||||
|
backend www
|
||||||
|
mode http
|
||||||
|
source 192.168.21.2:0
|
||||||
|
balance roundrobin
|
||||||
|
cookie SERVERID
|
||||||
|
server www1 192.168.12.2:80 check inter 30000 rise 2 fall 3 maxconn 10
|
||||||
|
server back 192.168.11.2:80 check inter 30000 rise 2 fall 5 backup cookie back maxconn 8
|
||||||
|
|
||||||
|
# long timeout to support connection queueing
|
||||||
|
contimeout 20000
|
||||||
|
srvtimeout 20000
|
||||||
|
fullconn 100
|
||||||
|
redispatch
|
||||||
|
retries 3
|
||||||
|
|
||||||
|
option httpchk HEAD /
|
||||||
|
option forwardfor
|
||||||
|
option checkcache
|
||||||
|
option httpclose
|
||||||
|
|
||||||
|
# allow other syntactically valid requests, and block any other method
|
||||||
|
acl valid_method method GET HEAD POST OPTIONS
|
||||||
|
block if !valid_method
|
||||||
|
block if HTTP_URL_STAR !METH_OPTIONS
|
||||||
|
block if !HTTP_URL_SLASH !HTTP_URL_STAR !HTTP_URL_ABS
|
||||||
|
|
||||||
|
# remove unnecessary precisions on the server version. Let's say
|
||||||
|
# it's an apache under Unix on the Formilux Distro.
|
||||||
|
rspidel ^Server:\
|
||||||
|
rspadd Server:\ Apache\ (Unix;\ Formilux/0.1.8)
|
||||||
|
|
||||||
|
defaults non_standard_bck
|
||||||
|
mode http
|
||||||
|
source 192.168.21.2:0
|
||||||
|
option forwardfor
|
||||||
|
option httpclose
|
||||||
|
balance roundrobin
|
||||||
|
fullconn 100
|
||||||
|
contimeout 20000
|
||||||
|
srvtimeout 20000
|
||||||
|
retries 2
|
||||||
|
|
||||||
|
backend www2
|
||||||
|
server www2 192.168.22.2:80 maxconn 10
|
||||||
|
|
||||||
|
# end of defaults
|
||||||
|
defaults none
|
||||||
|
|
||||||
|
backend demo
|
||||||
|
mode http
|
||||||
|
balance roundrobin
|
||||||
|
stats enable
|
||||||
|
stats uri /
|
||||||
|
stats scope http-in
|
||||||
|
stats scope www
|
||||||
|
stats scope demo
|
@ -1,6 +1,6 @@
|
|||||||
Summary: HA-Proxy is a TCP/HTTP reverse proxy for high availability environments
|
Summary: HA-Proxy is a TCP/HTTP reverse proxy for high availability environments
|
||||||
Name: haproxy
|
Name: haproxy
|
||||||
Version: 1.3.11.4
|
Version: 1.3.12
|
||||||
Release: 1
|
Release: 1
|
||||||
License: GPL
|
License: GPL
|
||||||
Group: System Environment/Daemons
|
Group: System Environment/Daemons
|
||||||
@ -69,6 +69,9 @@ fi
|
|||||||
%attr(0755,root,root) %config %{_sysconfdir}/rc.d/init.d/%{name}
|
%attr(0755,root,root) %config %{_sysconfdir}/rc.d/init.d/%{name}
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Jun 17 2007 Willy Tarreau <w@1wt.eu>
|
||||||
|
- updated to 1.3.12
|
||||||
|
|
||||||
* Sun Jun 3 2007 Willy Tarreau <w@1wt.eu>
|
* Sun Jun 3 2007 Willy Tarreau <w@1wt.eu>
|
||||||
- updated to 1.3.11.4
|
- updated to 1.3.11.4
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
Summary: HA-Proxy is a TCP/HTTP reverse proxy for high availability environments
|
Summary: HA-Proxy is a TCP/HTTP reverse proxy for high availability environments
|
||||||
Name: haproxy
|
Name: haproxy
|
||||||
Version: 1.3.11.4
|
Version: 1.3.12
|
||||||
Release: 1
|
Release: 1
|
||||||
License: GPL
|
License: GPL
|
||||||
Group: System Environment/Daemons
|
Group: System Environment/Daemons
|
||||||
@ -71,6 +71,9 @@ fi
|
|||||||
%attr(0755,root,root) %config %{_sysconfdir}/rc.d/init.d/%{name}
|
%attr(0755,root,root) %config %{_sysconfdir}/rc.d/init.d/%{name}
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Jun 17 2007 Willy Tarreau <w@1wt.eu>
|
||||||
|
- updated to 1.3.12
|
||||||
|
|
||||||
* Sun Jun 3 2007 Willy Tarreau <w@1wt.eu>
|
* Sun Jun 3 2007 Willy Tarreau <w@1wt.eu>
|
||||||
- updated to 1.3.11.4
|
- updated to 1.3.11.4
|
||||||
|
|
||||||
|
@ -57,13 +57,13 @@
|
|||||||
#ifdef CONFIG_HAPROXY_VERSION
|
#ifdef CONFIG_HAPROXY_VERSION
|
||||||
#define HAPROXY_VERSION CONFIG_HAPROXY_VERSION
|
#define HAPROXY_VERSION CONFIG_HAPROXY_VERSION
|
||||||
#else
|
#else
|
||||||
#define HAPROXY_VERSION "1.3.11.4"
|
#define HAPROXY_VERSION "1.3.12"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_HAPROXY_DATE
|
#ifdef CONFIG_HAPROXY_DATE
|
||||||
#define HAPROXY_DATE CONFIG_HAPROXY_DATE
|
#define HAPROXY_DATE CONFIG_HAPROXY_DATE
|
||||||
#else
|
#else
|
||||||
#define HAPROXY_DATE "2007/06/03"
|
#define HAPROXY_DATE "2007/06/17"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* _COMMON_VERSION_H */
|
#endif /* _COMMON_VERSION_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user