71 lines
2.1 KiB
Plaintext
71 lines
2.1 KiB
Plaintext
The http2 module adds support for the HTTP/2 protocol to the server.
|
|
|
|
Specifically, it supports the protocols "h2" (HTTP2 over TLS) and "h2c"
|
|
(HTTP2 over plain HTTP connections via Upgrade). Additionally it offers
|
|
the "direct" mode for both encrypted and unencrypted connections.
|
|
|
|
You may enable it for the whole server or specific virtual hosts only.
|
|
|
|
|
|
BUILD
|
|
|
|
If you have libnghttp2 (https://nghttp2.org) installed on your system, simply
|
|
add
|
|
|
|
--enable-http2
|
|
|
|
to your httpd ./configure invocation. Should libnghttp2 reside in a unusual
|
|
location, add
|
|
|
|
--with-nghttp2=<path>
|
|
|
|
to ./configure. <path> is expected to be the installation prefix, so there
|
|
should be a <path>/lib/libnghttp2.*. If your system support pkg-config,
|
|
<path>/lib/pkgconfig/libnghttp2.pc will be inspected.
|
|
|
|
If you want to link nghttp2 statically into the mod_http2 module, you may
|
|
similarly to mod_ssl add
|
|
|
|
--enable-nghttp2-staticlib-deps
|
|
|
|
For this, the lib directory should only contain the libnghttp2.a, not its
|
|
shared cousins.
|
|
|
|
|
|
CONFIGURATION
|
|
|
|
If mod_http2 is enabled for a site or not depends on the new "Protocols"
|
|
directive. This directive list all protocols enabled for a server or
|
|
virtual host.
|
|
|
|
If you do not specify "Protocols" all available protocols are enabled. For
|
|
sites using TLS, the protocol supported by mod_http2 is "h2". For cleartext
|
|
http:, the offered protocol is "h2c".
|
|
|
|
The following is an example of a server that only supports http/1.1 in
|
|
general and offers h2 for a specific virtual host.
|
|
|
|
...
|
|
Protocols http/1.1
|
|
<virtualhost *:443>
|
|
Protocols h2 http/1.1
|
|
...
|
|
</virtualhost>
|
|
|
|
Please see the documentation of mod_http2 for a complete list and explanation
|
|
of all options.
|
|
|
|
|
|
TLS CONFIGURATION
|
|
|
|
If you want to use HTTP/2 with a browser, most modern browsers will support
|
|
it without further configuration. However, browsers so far only support
|
|
HTTP/2 over TLS and are especially picky about the certificate and
|
|
encryption ciphers used.
|
|
|
|
Server admins may look for up-to-date information about "modern" TLS
|
|
compatibility under:
|
|
|
|
https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility
|
|
|