HTTP/2#
Provides support for HTTP/2.
When building from the source code,
this module isn't built by default;
it should be enabled with the
‑‑with‑http_v2_module
build option.
In packages and images from our repos, the module is included in the build.
Configuration Example#
server {
listen 443 ssl;
http2 on;
ssl_certificate server.crt;
ssl_certificate_key server.key;
}
Important
Note that accepting HTTP/2 connections over TLS requires the "Application-Layer Protocol Negotiation" (ALPN) TLS extension support, which is available since OpenSSL version 1.0.2.
If the ssl_prefer_server_ciphers directive is set to the value "on", the ciphers should be configured to comply with RFC 9113, Appendix A black list and supported by clients.
Directives#
http2#
Added in version 1.2.0.
Enables the HTTP/2 protocol.
http2_body_preread_size#
Sets the size of the buffer per each request in which the request body may be saved before it is started to be processed.
http2_chunk_size#
Sets the maximum size of chunks into which the response body is sliced. A too low value results in higher overhead. A too high value impairs prioritization due to HOL blocking.
http2_max_concurrent_pushes#
Deprecated since version 1.2.0.
|
|
Default |
|
http, server |
Limits the maximum number of concurrent push requests in a connection.
http2_max_concurrent_streams#
|
|
Default |
|
http, server |
Sets the maximum number of concurrent HTTP/2 streams in a connection.
http2_push#
Deprecated since version 1.2.0.
Preemptively sends (pushes) a request to the specified uri along with the response to the original request. Only relative URIs with absolute path will be processed, for example:
http2_push /static/css/main.css;
The uri
value can contain variables.
Several http2_push directives can be specified on the same configuration level. The off
parameter cancels the effect of the http2_push directives inherited from the previous configuration level.
http2_push_preload#
Deprecated since version 1.2.0.
Enables automatic conversion of preload links specified in the "Link" response header fields into push requests.
http2_recv_buffer_size#
Sets the size of the per worker input buffer.
Built-in Variables#
The http_v2 module supports the following built-in variables:
$http2
#
negotiated protocol identifier:
|
for HTTP/2 over TLS |
|
for HTTP/2 over cleartext TCP |
|
an empty string otherwise |