Anansewaa
HTTP/2 Test

Enabling HTTP/2 in Apache on Ubuntu

The experimental SPDY protocol originally developed by Google gave birth to HTTP/2. Enabling HTTP/2 will greatly improve website performance.

However, there are some prerequisites to enabling HTTP/2 for your website. In this article, I will show how to get HTTP/2 working on your site running on Apache webserver.

Prerequisites to Enabling HTTP/2

HTTPS

First, enable HTTPS for your site. Configure HTTPS for your website, if you do not already have the SSL certificate or use Let’s Encrypt which is an open-source SSL certificate.

Apache 2.4.24

Older versions of Apache do not support HTTP/2. You need to have Apache 2.4.24 and above. If you are using Ubuntu 16.04 LTS, then upgrade to Ubuntu 18.04 LTS.

PHP FPM

By default, PHP runs on Apache via mod_php. According to Apache documentation, HTTP/2 is not compatible with Apache’s prefork multi-processing module. Moreover, prefork is not most people favourite now. A switch to a modern module is better.

Therefore, switch to php7.x-fpm from mod_php. Run the following commands to effect the necessary changes.

enabling  http/2
Switching from mod_php to php7.x-fpm

Enable HTTP/2 in Apache

Now, let’s enable mod_http2 module. Use the command below to enable mod_http2:

mod http2
enable mod_http2 module

Finally, enable HTTP/2 protocol by updating /etc/apache2/apache2.conf with the code below:

Protocols h2 http/1.1
Protocols h2 http/1.1

Conclusion

Now you have successfully enabled HTTP/2 protocol in Apache. Test your configuration with Lighthouse which powers the audit panel of Chrome Dev Tools or the online test from KeyCDN.

Avatar for Clemence Ayekple

Clemence Ayekple

Let's grab a cup of coffee and talk about programming

Add comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Follow us

Don't be shy, get in touch. We love meeting interesting people and making new friends.

Most discussed

%d bloggers like this: