HTTP/2
is a major improvement over HTTP/1.1
especially in the speed department. HTTP/2
is supported by Apache
though it's not enabled by default.
HTTP/2
could simply be enabled on Apache
by installing required module and configure Apache
to serve requests using HTTP/2
instead of the default HTTP/1.1
http2
module for Apache
. $ sudo a2enmod http2 # Ubuntu, Debian and SUSE Enabling module http2. To activate the new configuration, you need to run: systemctl restart apache2
a2enmod
support can simply run the command above without having to manually enable the required modules.Fedora
, CentOS
and Red Hat
enables the module by default so requires no manual action to enable the modules.Options | Debian, Ubuntu | openSUSE and SLES | Fedora Core, CentOS, RHEL | macOS | homebrew | xampp |
---|---|---|---|---|---|---|
a2enmod support | yes | yes | no | no | no | no |
Modules to install | none | |||||
Module name | n/a | http2 | ||||
Loadmodule directive | n/a | LoadModule http2_module <module_locations>/mod_http2.so |
Protocols
directive in main Apache
configuration file or on a specific virtual server configuration. <VirtualHost *:80> # ..... # .... Protocols h2 h2c http/1.1 </VirtualHost>
Apache
service for the changes to take effect. $ sudo systemctl restart apache2 # Ubuntu and Debian $ sudo systemctl restart httpd # CentOS and Red Hat
curl
. $ curl --http2 --head www.simplified.guide HTTP/1.1 101 Switching Protocols Upgrade: h2c Connection: Upgrade HTTP/2 200 date: Sun, 00 Jan 1900 00:00:00 GMT server: Apache/2.4.41 (Ubuntu) last-modified: Sat, 08 Feb 2020 14:15:13 GMT etag: W/"2aa6-59e11227347f6" accept-ranges: bytes content-length: 10918 vary: Accept-Encoding content-type: text/html
Guide compatibility:
Operating System |
---|
Ubuntu 16.04 LTS (Xenial Xerus) |
Ubuntu 16.10 (Yakkety Yak) |
Ubuntu 17.04 (Zesty Zapus) |
Ubuntu 17.10 (Artful Aardvark) |
Ubuntu 18.04 LTS (Bionic Beaver) |
Ubuntu 18.10 (Cosmic Cuttlefish) |
Ubuntu 19.04 (Disco Dingo) |
Comment anonymously. Login not required.