We released nghttp2 v1.3.1.
In this release, we fixed several bugs in library and added improvements to h2load and nghttpx.
We fixed rough edges of stream priority handling in nghttp2 library code. It was minor, but worth updating.
We shipped init script for nghttpx, but it missed --daemon
option.
So unless it is enabled in its configuration file, start/stop script
hangs. This bug was fixed by Tomasz Buchert.
Lucas Pardue improved validation of timing script input in h2load.
Previously, in h2load, we measured TTFB (time to first byte) in first socket read, rather than first byte of response body. Now it is corrected.
We added
PROXY protocol version 1
support to nghttpx. If --accept-proxy-protocol
option is used,
nghttpx expects PROXY protocol line on frontend connection. The
obtained client address is used in X-Forwarded-For
header field.
We extended push functionality in nghttpx, and it can now push resources specified in Link header fields which come from HTTP/2 backend. Also we now allow absolute URI in Link header fields.
We added mruby support in nghttpx.
It is disabled by default. Use --with-mruby
configure option to
enable it. The nghttp2 archive includes mruby source code, so user
doesn’t have to download it themselves. Please note that mruby
package in Debian/Ubuntu does not work with nghttpx, since it does not
enable C++ ABI mode. nghttpx runs given mruby scripts in 2 phases:
request phase, and response phase. The request phase is when set of
request header fields are received from client. The response phase is
when set of response header fields are received from backend server.
We have
documented all mruby APIs.
User can override request/response header fields, change request path,
and even return custom response without forwarding request to backend
or discarding response from backend. Checkout
examples.