Hi Willy.
Am 10-11-2016 00:18, schrieb Willy Tarreau:
Hi,
HAProxy 1.7-dev6 was released on 2016/11/09. It added 61 new commits
after version 1.7-dev5.
Great ;-)
[snip]
- and the new stream processing offload engine (SPOE). Yes, we had to
give
it a name. And the protocol is called SPOP. This is what allows
haproxy
to offload some of its processing to external processes which can
apply
some actions and set variables. There are a few things that really
please me here. The first one obviously is that it was completed in
time. Kudos to Christopher on this one! The next one is that I
personally find the design quite clean and we left some room to
improve
the protocol later if needed, and to improve our first
implementation of
the protocol without breaking backwards compatibility. The next
one is
that the code lies in its own file without affecting the code at
all, it
solely relies on the new filters infrastructure, which at the same
time
starts to proves its maturity, and this is great. The last one is
that
there's quite an extensive doc and even an example of external
agent to
be used as a starting point to move your processing outside. Most
likely
the first use cases will be to implement various forms of
authentication
or content inspection. We're obviously interested in feedback here.
Those not using it don't have to fear any side effect. More info
here :
http://www.haproxy.org/download/1.7/doc/SPOE.txt
I have read the doc. very interesting.
When I understand this sentence right currently it is only possible to
check some headers right?
###
Actually, for now, the SPOE can offload the processing before
"tcp-request content",
"tcp-response content", "http-request" and "http-response" rules.
###
So a header only WAF is now "easily" possible instead of the full stack
with mod_security.
http://blog.haproxy.com/2012/10/12/scalable-waf-protection-with-haproxy-and-apache-with-modsecurity/
Some attacks are also in the post body, I assume this will come in the
future after some good tests.
Finally some minor performance improvements were brought to the HTTP
parser
for large requests or responses (eg: long URLs, huge cookies). I've
observed
up to 10% increase in request rate with 1kB cookies and 100-char URIs.
For me very impressive, wow respect.
The goal now really is to test this version and to release it with
minimal
changes in 1-2 weeks depending on feedback and bug reports. Yes that's
short,
so if you have a few minor pending patches that you'd like to get
merged in
1.7, send them NOW. There are still a number of things I'd like to see
better
arranged, so cleanups and code moves may still happen, and still are
welcome,
but we must not perform other important changes now. Please if you want
to
touch anything in dumpstats.c, notify William who is trying to tidy all
this
horrible mess by moving all non-stats parts to their relevant files (no
code
change, just functions being reshuffled around).
As I interpret this right the HTTP/2 will be on the roadmap of 1.8 or
2.0?
Some of our customers want to use http2_push.
I think this requires that also the HTTP/2 client (Backend) need to be
implemented right?
BR Aleks