forked from pool/haproxy
Accepting request 710358 from home:KGronlund:branches:server:http
- Update to version 2.0.0~git0.ba23630a: - new internal native HTTP representation called HTX, was already in 1.9 and is now enabled by default in 2.0 ; - end-to-end HTTP/2 support including trailers and continuation frames, as needed for gRPC ; HTTP/2 may also be upgraded from HTTP/1.1 using the H2 preface; - server connection pooling and more advanced reuse, with ALPN protocol negotiation (already in 1.9) ; - layer 7 retries, allowing to use 0-RTT and TCP Fast Open to the servers as well as on the frontend ; - much more scalable multi-threading, which is even enabled by default on platforms where it was successfully tested ; by default, as many threads are started as the number of CPUs haproxy is allowed to run on. This removes a lot of configuration burden in VMs and containers ; - automatic maxconn setting for the process and the frontends, directly based on the number of available FDs (easier configuration in containers and with systemd) ; - logging to stdout for use in containers and systemd (already in 1.9). Logs can now provide micro-second resolution for some events ; - peers now support SSL, declaration of multiple stick-tables directly in the peers section, and synchronization of server names, not just IDs ; - In master-worker mode, the master process now exposes its own CLI and can communicate with all other processes (including the stopping ones), even allowing to connect to their CLI and check their state. It is also possible to start some sidecar programs and monitor them from the master, and the master can automatically kill old processes that survived too many reloads ; - the incoming connections are load-balanced between all threads depending on their load to minimize the processing time and maximize the capacity (already in 1.9) ; - the SPOE connection load-balancing was significantly improved in order to reduce high percentiles of SPOA response time (already in 1.9) ; - the "random" load balancing algorithm and a power-of-two-choices variant were introduced ; - statistics improvements with per-thread counters for certain things, and a prometheus exporter for all our statistics; - lots of debugging help, it's easier to produce a core dump, there are new commands on the CLI to control various things, there is a watchdog to fail cleanly when a thread deadlock or a spinning task are detected, so overall it should provide a better experience in field and less round trips between users and developers (hence less stress during an incident). - all 3 device detection engines are now compatible with multi-threading and can be build-tested without any external dependencies ; - "do-resolve" http-request action to perform a DNS resolution on any, sample, and resolvers now support relying on /etc/resolv.conf to match the local resolver ; - log sampling and balancing : it's now possible to send 1 log every 10 to a server, or to spread the logging load over multiple log servers; - a new SPOA agent (spoa_server) allows to interface haproxy with Python and Lua programs ; - support for Solaris' event ports (equivalent of kqueue or epoll) which will significantly improve the performance there when dealing with numerous connections ; - some warnings are now reported for some deprecated options that will be removed in 2.1. Since 2.0 is long term supported, there's no emergency to convert them, however if you see these warnings, you need to understand that you're among their extremely rare users and just because of this you may be taking risks by keeping them ; - A new SOCKS4 server-side layer was provided ; it allows outgoing connections to be forwarded through a SOCKS4 proxy (such as ssh -D). - priority- and latency- aware server queues : it is possible now to assign priorities to certain requests and/or to give them a time bonus or penalty to refine control of the traffic and be able to engage on SLAs. - internally the architecture was significantly redesigned to allow to further improve performance and make it easier to implement protocols that span over multiple layers (such as QUIC). This work started in 1.9 and will continue with 2.1. - the I/O, applets and tasks now share the same multi-threaded scheduler, giving a much better responsiveness and fairness between all tasks as is visible with the CLI which always responds instantly even under extreme loads (started in 1.9) ; - the internal buffers were redesigned to ease zero-copy operations, so that it is possible to sustain a high bandwidth even when forwarding HTTP/1 to/from HTTP/2 (already in 1.9) ; OBS-URL: https://build.opensuse.org/request/show/710358 OBS-URL: https://build.opensuse.org/package/show/server:http/haproxy?expand=0&rev=182
This commit is contained in:
parent
5ba20d6b58
commit
d7f112bb8f
4
_service
4
_service
@ -1,12 +1,12 @@
|
||||
<services>
|
||||
<service name="tar_scm" mode="disabled">
|
||||
<param name="url">http://git.haproxy.org/git/haproxy-1.8.git</param>
|
||||
<param name="url">http://git.haproxy.org/git/haproxy-2.0.git</param>
|
||||
<param name="scm">git</param>
|
||||
<param name="filename">haproxy</param>
|
||||
<param name="versionformat">@PARENT_TAG@~git@TAG_OFFSET@.%h</param>
|
||||
<param name="versionrewrite-pattern">v(.*)</param>
|
||||
<param name="versionrewrite-replacement">\1</param>
|
||||
<param name="revision">v1.8.20</param>
|
||||
<param name="revision">v2.0.0</param>
|
||||
<param name="changesgenerate">enable</param>
|
||||
</service>
|
||||
|
||||
|
@ -5,4 +5,6 @@
|
||||
<param name="url">http://git.haproxy.org/git/haproxy-1.7.git</param>
|
||||
<param name="changesrevision">640d526f8cdad00f7f5043b51f6a34f3f6ebb49f</param></service><service name="tar_scm">
|
||||
<param name="url">http://git.haproxy.org/git/haproxy-1.8.git</param>
|
||||
<param name="changesrevision">6fb9fadc5311cd00beb522a35596d3aa63f24fdb</param></service></servicedata>
|
||||
<param name="changesrevision">6fb9fadc5311cd00beb522a35596d3aa63f24fdb</param></service><service name="tar_scm">
|
||||
<param name="url">http://git.haproxy.org/git/haproxy-2.0.git</param>
|
||||
<param name="changesrevision">ba23630ad009464dc8e4d01dac9ce779eb84cc2a</param></service></servicedata>
|
@ -1,9 +1,9 @@
|
||||
Index: Makefile
|
||||
===================================================================
|
||||
--- Makefile.orig
|
||||
+++ Makefile
|
||||
@@ -647,7 +647,7 @@ ifneq ($(USE_PCRE)$(USE_STATIC_PCRE)$(US
|
||||
PCREDIR := $(shell pcre-config --prefix 2>/dev/null || echo /usr/local)
|
||||
diff --git a/Makefile b/Makefile
|
||||
index d62fead7..33fa6338 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -619,7 +619,7 @@ PCRE_CONFIG := pcre-config
|
||||
PCREDIR := $(shell $(PCRE_CONFIG) --prefix 2>/dev/null || echo /usr/local)
|
||||
ifneq ($(PCREDIR),)
|
||||
PCRE_INC := $(PCREDIR)/include
|
||||
-PCRE_LIB := $(PCREDIR)/lib
|
||||
@ -11,3 +11,12 @@ Index: Makefile
|
||||
endif
|
||||
|
||||
ifeq ($(USE_STATIC_PCRE),)
|
||||
@@ -638,7 +638,7 @@ PCRE2_CONFIG := pcre2-config
|
||||
PCRE2DIR := $(shell $(PCRE2_CONFIG) --prefix 2>/dev/null || echo /usr/local)
|
||||
ifneq ($(PCRE2DIR),)
|
||||
PCRE2_INC := $(PCRE2DIR)/include
|
||||
-PCRE2_LIB := $(PCRE2DIR)/lib
|
||||
+PCRE2_LIB := $(PCRE2DIR)/$(LIB)
|
||||
|
||||
ifeq ($(PCRE2_WIDTH),)
|
||||
PCRE2_WIDTH = 8
|
||||
|
@ -1,9 +1,15 @@
|
||||
Index: Makefile
|
||||
===================================================================
|
||||
--- Makefile.orig
|
||||
+++ Makefile
|
||||
@@ -674,6 +674,35 @@ OPTIONS_CFLAGS += -DUSE_TFO
|
||||
BUILD_OPTIONS += $(call ignore_implicit,USE_TFO)
|
||||
commit 88413472b09e2ecd4ad2b4a00992184c14d5723c
|
||||
Author: Kristoffer Gronlund <kgronlund@suse.com>
|
||||
Date: Mon Jun 17 13:00:08 2019 +0000
|
||||
|
||||
SUSE: Makefile sec options
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 33fa6338..3777ad6d 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -675,6 +675,35 @@ endif
|
||||
endif
|
||||
endif
|
||||
|
||||
+# PIE
|
||||
|
@ -15,20 +15,6 @@ Index: haproxy-1.6.0/examples/acl-content-sw.cfg
|
||||
pidfile /var/run/haproxy.pid
|
||||
daemon
|
||||
quiet
|
||||
Index: haproxy-1.6.0/examples/auth.cfg
|
||||
===================================================================
|
||||
--- haproxy-1.6.0.orig/examples/auth.cfg
|
||||
+++ haproxy-1.6.0/examples/auth.cfg
|
||||
@@ -1,7 +1,7 @@
|
||||
global
|
||||
-# chroot /var/empty/
|
||||
-# uid 451
|
||||
-# gid 451
|
||||
+ user haproxy
|
||||
+ group haproxy
|
||||
+ chroot /var/lib/haproxy
|
||||
log 192.168.131.214:8514 local4 debug
|
||||
maxconn 8192
|
||||
|
||||
Index: haproxy-1.6.0/examples/content-sw-sample.cfg
|
||||
===================================================================
|
||||
@ -64,20 +50,6 @@ Index: haproxy-1.6.0/examples/option-http_proxy.cfg
|
||||
nbproc 4
|
||||
daemon
|
||||
|
||||
Index: haproxy-1.6.0/examples/ssl.cfg
|
||||
===================================================================
|
||||
--- haproxy-1.6.0.orig/examples/ssl.cfg
|
||||
+++ haproxy-1.6.0/examples/ssl.cfg
|
||||
@@ -4,6 +4,9 @@
|
||||
|
||||
global
|
||||
maxconn 100
|
||||
+ chroot /var/lib/haproxy
|
||||
+ user haproxy
|
||||
+ group haproxy
|
||||
|
||||
defaults
|
||||
mode http
|
||||
Index: haproxy-1.6.0/examples/transparent_proxy.cfg
|
||||
===================================================================
|
||||
--- haproxy-1.6.0.orig/examples/transparent_proxy.cfg
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2532e32c049351060e35aa4d5fda51ca76e1c411b00b8578609134250cd06000
|
||||
size 2142728
|
3
haproxy-2.0.0~git0.ba23630a.tar.gz
Normal file
3
haproxy-2.0.0~git0.ba23630a.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:83d85bc60dbbea9694b188e4c79b40bfd4594d33c3ebdef63ee4c5f99e85f429
|
||||
size 2603528
|
104
haproxy.changes
104
haproxy.changes
@ -1,3 +1,107 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 17 12:33:47 UTC 2019 - kgronlund@suse.com
|
||||
|
||||
- Update to version 2.0.0~git0.ba23630a:
|
||||
- new internal native HTTP representation called HTX, was already in 1.9
|
||||
and is now enabled by default in 2.0 ;
|
||||
|
||||
- end-to-end HTTP/2 support including trailers and continuation frames,
|
||||
as needed for gRPC ; HTTP/2 may also be upgraded from HTTP/1.1 using
|
||||
the H2 preface;
|
||||
|
||||
- server connection pooling and more advanced reuse, with ALPN protocol
|
||||
negotiation (already in 1.9) ;
|
||||
|
||||
- layer 7 retries, allowing to use 0-RTT and TCP Fast Open to the servers
|
||||
as well as on the frontend ;
|
||||
|
||||
- much more scalable multi-threading, which is even enabled by default on
|
||||
platforms where it was successfully tested ; by default, as many threads
|
||||
are started as the number of CPUs haproxy is allowed to run on. This
|
||||
removes a lot of configuration burden in VMs and containers ;
|
||||
|
||||
- automatic maxconn setting for the process and the frontends, directly
|
||||
based on the number of available FDs (easier configuration in containers
|
||||
and with systemd) ;
|
||||
|
||||
- logging to stdout for use in containers and systemd (already in 1.9).
|
||||
Logs can now provide micro-second resolution for some events ;
|
||||
|
||||
- peers now support SSL, declaration of multiple stick-tables directly in
|
||||
the peers section, and synchronization of server names, not just IDs ;
|
||||
|
||||
- In master-worker mode, the master process now exposes its own CLI and
|
||||
can communicate with all other processes (including the stopping ones),
|
||||
even allowing to connect to their CLI and check their state. It is also
|
||||
possible to start some sidecar programs and monitor them from the master,
|
||||
and the master can automatically kill old processes that survived too
|
||||
many reloads ;
|
||||
|
||||
- the incoming connections are load-balanced between all threads depending
|
||||
on their load to minimize the processing time and maximize the capacity
|
||||
(already in 1.9) ;
|
||||
|
||||
- the SPOE connection load-balancing was significantly improved in order
|
||||
to reduce high percentiles of SPOA response time (already in 1.9) ;
|
||||
|
||||
- the "random" load balancing algorithm and a power-of-two-choices variant
|
||||
were introduced ;
|
||||
|
||||
- statistics improvements with per-thread counters for certain things, and
|
||||
a prometheus exporter for all our statistics;
|
||||
|
||||
- lots of debugging help, it's easier to produce a core dump, there are
|
||||
new commands on the CLI to control various things, there is a watchdog
|
||||
to fail cleanly when a thread deadlock or a spinning task are detected,
|
||||
so overall it should provide a better experience in field and less
|
||||
round trips between users and developers (hence less stress during an
|
||||
incident).
|
||||
|
||||
- all 3 device detection engines are now compatible with multi-threading
|
||||
and can be build-tested without any external dependencies ;
|
||||
|
||||
- "do-resolve" http-request action to perform a DNS resolution on any,
|
||||
sample, and resolvers now support relying on /etc/resolv.conf to match
|
||||
the local resolver ;
|
||||
|
||||
- log sampling and balancing : it's now possible to send 1 log every 10
|
||||
to a server, or to spread the logging load over multiple log servers;
|
||||
|
||||
- a new SPOA agent (spoa_server) allows to interface haproxy with Python
|
||||
and Lua programs ;
|
||||
|
||||
- support for Solaris' event ports (equivalent of kqueue or epoll) which
|
||||
will significantly improve the performance there when dealing with
|
||||
numerous connections ;
|
||||
|
||||
- some warnings are now reported for some deprecated options that will
|
||||
be removed in 2.1. Since 2.0 is long term supported, there's no
|
||||
emergency to convert them, however if you see these warnings, you
|
||||
need to understand that you're among their extremely rare users and
|
||||
just because of this you may be taking risks by keeping them ;
|
||||
|
||||
- A new SOCKS4 server-side layer was provided ; it allows outgoing
|
||||
connections to be forwarded through a SOCKS4 proxy (such as ssh -D).
|
||||
|
||||
- priority- and latency- aware server queues : it is possible now to
|
||||
assign priorities to certain requests and/or to give them a time
|
||||
bonus or penalty to refine control of the traffic and be able to
|
||||
engage on SLAs.
|
||||
|
||||
- internally the architecture was significantly redesigned to allow to
|
||||
further improve performance and make it easier to implement protocols
|
||||
that span over multiple layers (such as QUIC). This work started in
|
||||
1.9 and will continue with 2.1.
|
||||
|
||||
- the I/O, applets and tasks now share the same multi-threaded scheduler,
|
||||
giving a much better responsiveness and fairness between all tasks as
|
||||
is visible with the CLI which always responds instantly even under
|
||||
extreme loads (started in 1.9) ;
|
||||
|
||||
- the internal buffers were redesigned to ease zero-copy operations, so
|
||||
that it is possible to sustain a high bandwidth even when forwarding
|
||||
HTTP/1 to/from HTTP/2 (already in 1.9) ;
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 03 12:56:13 UTC 2019 - kgronlund@suse.com
|
||||
|
||||
|
12
haproxy.spec
12
haproxy.spec
@ -47,7 +47,7 @@
|
||||
%endif
|
||||
|
||||
Name: haproxy
|
||||
Version: 1.8.20~git0.6fb9fadc
|
||||
Version: 2.0.0~git0.ba23630a
|
||||
Release: 0
|
||||
#
|
||||
#
|
||||
@ -122,12 +122,12 @@ the most work done from every CPU cycle.
|
||||
%prep
|
||||
%setup -q
|
||||
%patch1 -p1
|
||||
%patch2
|
||||
%patch3
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
|
||||
%build
|
||||
make \
|
||||
TARGET=linux2628 \
|
||||
TARGET=linux-glibc \
|
||||
CPU="%{_target_cpu}" \
|
||||
USE_PCRE=1 \
|
||||
%if %{with pcre_jit}
|
||||
@ -180,14 +180,14 @@ ln -fs %{_sysconfdir}/init.d/%{pkg_name} %{buildroot}%{_sbindir}/rc%{pkg_name}
|
||||
%endif
|
||||
|
||||
install -d -m 0750 %{buildroot}%{pkg_home}
|
||||
install -D -m 0644 examples/haproxy.vim %{buildroot}%{vim_data_dir}/syntax/%{pkg_name}.vim
|
||||
install -D -m 0644 contrib/syntax-highlight/haproxy.vim %{buildroot}%{vim_data_dir}/syntax/%{pkg_name}.vim
|
||||
install -D -m 0644 doc/%{pkg_name}.1 %{buildroot}%{_mandir}/man1/%{pkg_name}.1
|
||||
%if %{with apparmor}
|
||||
install -D -m 0644 %{S:2} %{buildroot}/etc/apparmor.d/usr.sbin.haproxy
|
||||
install -D -m 0644 %{S:3} %{buildroot}/etc/apparmor.d/local/usr.sbin.haproxy
|
||||
%endif
|
||||
|
||||
rm examples/haproxy.spec examples/*init* examples/haproxy.vim
|
||||
rm examples/*init*
|
||||
|
||||
%pre
|
||||
getent group %{pkg_name} >/dev/null || /usr/sbin/groupadd -r %{pkg_name}
|
||||
|
Loading…
Reference in New Issue
Block a user