Add HTTP/3 documentation
This commit is contained in:
parent
54fd0efdfe
commit
3122038c48
16
README.rst
16
README.rst
|
@ -159,6 +159,11 @@ required:
|
||||||
|
|
||||||
* libbpf-dev >= 0.4.0
|
* libbpf-dev >= 0.4.0
|
||||||
|
|
||||||
|
For Ubuntu 20.04, you can build libbpf from `the source code
|
||||||
|
<https://github.com/libbpf/libbpf/releases/tag/v0.4.0>`_. nghttpx
|
||||||
|
requires eBPF program for reloading its configuration and hot swapping
|
||||||
|
its executable.
|
||||||
|
|
||||||
Compiling libnghttp2 C source code requires a C99 compiler. gcc 4.8
|
Compiling libnghttp2 C source code requires a C99 compiler. gcc 4.8
|
||||||
is known to be adequate. In order to compile the C++ source code, gcc
|
is known to be adequate. In order to compile the C++ source code, gcc
|
||||||
>= 6.0 or clang >= 6.0 is required. C++ source code requires C++14
|
>= 6.0 or clang >= 6.0 is required. C++ source code requires C++14
|
||||||
|
@ -897,6 +902,17 @@ like so:
|
||||||
|
|
||||||
$ h2load --npn-list h3 https://127.0.0.1:4433
|
$ h2load --npn-list h3 https://127.0.0.1:4433
|
||||||
|
|
||||||
|
HTTP/3
|
||||||
|
------
|
||||||
|
|
||||||
|
To build h2load and nghttpx with HTTP/3 feature enabled, run the
|
||||||
|
configure script with ``--enable-http3``.
|
||||||
|
|
||||||
|
For nghttpx to reload configurations and swapping its executable while
|
||||||
|
gracefully terminating old worker processes, eBPF is required. Run
|
||||||
|
the configure script with ``--enable-http3 --with-libbpf`` to build
|
||||||
|
eBPF program.
|
||||||
|
|
||||||
HPACK tools
|
HPACK tools
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
|
|
|
@ -131,3 +131,12 @@ specify ``unix:`` followed by the path to UNIX domain socket. For
|
||||||
example, if UNIX domain socket is ``/tmp/nghttpx.sock``, use
|
example, if UNIX domain socket is ``/tmp/nghttpx.sock``, use
|
||||||
``--base-uri=unix:/tmp/nghttpx.sock``. h2load uses scheme, host and
|
``--base-uri=unix:/tmp/nghttpx.sock``. h2load uses scheme, host and
|
||||||
port in the first URI in command-line or input file.
|
port in the first URI in command-line or input file.
|
||||||
|
|
||||||
|
HTTP/3
|
||||||
|
------
|
||||||
|
|
||||||
|
h2load supports HTTP/3 if it is built with HTTP/3 enabled. HTTP/3
|
||||||
|
support is experimental.
|
||||||
|
|
||||||
|
In order to send HTTP/3 request, specify ``h3`` to
|
||||||
|
:option:`--npn-list`.
|
||||||
|
|
|
@ -509,6 +509,37 @@ Bootstrapping WebSockets with HTTP/2 for both frontend and backend
|
||||||
connections. This feature is enabled by default and no configuration
|
connections. This feature is enabled by default and no configuration
|
||||||
is required.
|
is required.
|
||||||
|
|
||||||
|
HTTP/3
|
||||||
|
------
|
||||||
|
|
||||||
|
nghttpx supports HTTP/3 if it is built with HTTP/3 support enabled.
|
||||||
|
HTTP/3 support is experimental.
|
||||||
|
|
||||||
|
In order to listen UDP port to receive HTTP/3 traffic,
|
||||||
|
:option:`--frontend` option must have ``quic`` parameter:
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
frontend=*,443;quic
|
||||||
|
|
||||||
|
The above example makes nghttpx receive HTTP/3 traffic on UDP
|
||||||
|
port 443.
|
||||||
|
|
||||||
|
nghttpx does not support HTTP/3 on backend connection.
|
||||||
|
|
||||||
|
Hot swapping (SIGUSR2) or configuration reload (SIGHUP) require eBPF
|
||||||
|
program. Without eBPF, old worker processes keep getting HTTP/3
|
||||||
|
traffic and do not work as intended.
|
||||||
|
|
||||||
|
In order announce that HTTP/3 endpoint is available, you should
|
||||||
|
specify alt-svc header field. For example, the following options send
|
||||||
|
alt-svc header field in HTTP/1.1 and HTTP/2 response:
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
altsvc=h3,443,,,ma=3600
|
||||||
|
http2-altsvc=h3,443,,,ma=3600
|
||||||
|
|
||||||
Migration from nghttpx v1.18.x or earlier
|
Migration from nghttpx v1.18.x or earlier
|
||||||
-----------------------------------------
|
-----------------------------------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue