1The http2 module adds support for the HTTP/2 protocol to the server.
2
3Specifically, it supports the protocols "h2" (HTTP2 over TLS) and "h2c"
4(HTTP2 over plain HTTP connections via Upgrade). Additionally it offers
5the "direct" mode for both encrypted and unencrypted connections.
6
7You may enable it for the whole server or specific virtual hosts only.
8
9
10BUILD
11
12If you have libnghttp2 (https://nghttp2.org) installed on your system, simply
13add
14
15    --enable-http2
16
17to your httpd ./configure invocation. Should libnghttp2 reside in a unusual
18location, add
19
20    --with-nghttp2=<path>
21
22to ./configure. <path> is expected to be the installation prefix, so there
23should be a <path>/lib/libnghttp2.*. If your system support pkg-config,
24<path>/lib/pkgconfig/libnghttp2.pc will be inspected.
25
26If you want to link nghttp2 statically into the mod_http2 module, you may
27similarly to mod_ssl add
28
29    --enable-nghttp2-staticlib-deps
30
31For this, the lib directory should only contain the libnghttp2.a, not its
32shared cousins.
33
34
35CONFIGURATION
36
37If mod_http2 is enabled for a site or not depends on the new "Protocols"
38directive. This directive list all protocols enabled for a server or
39virtual host.
40
41If you do not specify "Protocols" all available protocols are enabled. For
42sites using TLS, the protocol supported by mod_http2 is "h2". For cleartext
43http:, the offered protocol is "h2c".
44
45The following is an example of a server that only supports http/1.1 in
46general and offers h2 for a specific virtual host.
47
48    ...
49    Protocols http/1.1
50    <virtualhost *:443>
51        Protocols h2 http/1.1
52        ...
53    </virtualhost>
54
55Please see the documentation of mod_http2 for a complete list and explanation
56of all options.
57
58
59TLS CONFIGURATION
60
61If you want to use HTTP/2 with a browser, most modern browsers will support
62it without further configuration. However, browsers so far only support
63HTTP/2 over TLS and are especially picky about the certificate and
64encryption ciphers used.
65
66Server admins may look for up-to-date information about "modern" TLS
67compatibility under:
68
69  https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility
70
71