In Apache, you may wish to enable the HTTP/2 so that the website content can load faster on the request. For this to work you would need Apache to be installed and the HTTP/2 module to be enabled.
root@mysuperweb:/var/www/html# a2enmod http2
Enabling module http2.
To activate the new configuration, you need to run:
systemctl restart apache2
The above code will enable the HTTP/2 on the Apache, naturally you would need to restart Apache for the changes to take affect. At the same time you also need to make changes to the Apache configuration.
<VirtualHost *:443>
Protocols h2 http/1.1
<VirtualHost>
Even with the correct configuration, the HTTP/2 may still not load up, the error logs may show the following message at:
/var/log/apache2/error.log
[Thu Jul 19 11:36:00.013581 2018] [http2:warn] [pid 26193] AH10034: The mpm module (prefork.c) is not supported by mod_http2. The mpm determines how things are processed in your server. HTTP/2 has more demands in this regard and the currently selected mpm will just not do. This is an advisory warning. Your server will continue to work, but the HTTP/2 protocol will be inactive.
The issue is where by the default mpm (multi-processing module) in Apache is mpm_prefork, this doesn’t work with Apache as of version 2.4.27, this means that you would use another mpm such as mpm_event or mpm_worker.
The differences between the three types of mpm can be shown below:
prefork - Implements a non-threaded, pre-forking web server.
worker - Multi-Processing Module implementing a hybrid multi-threaded multi-process web server.
event - A variant of the worker MPM with the goal of consuming threads only for connections with active processing.
You can verify your mpm on the configuration with:
root@mysuperweb:~# apachectl -V
Server version: Apache/2.4.25
Server built: 2018-06-02T08:01:13
Server's Module Magic Number: 20120211:68
Server loaded: APR 1.5.2, APR-UTIL 1.5.4
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture: 64-bit
Server MPM: event
threaded: yes (fixed thread count)
forked: yes (variable process count)