How to setup HTTP2 in cPanel/WHM Linux VPS using EasyApache3

Posted by vpsineu on Jul 29, 2016 7:56 AM EDT
VPSinEU.com; By VPSinEU.com
Mail this story
Print this story

In today’s tutorial we’ll show you how to setup HTTP2 in cPanel/WHM Linux VPS using EasyApache3. Although this feature is still in BETA (as of writing this article), it’s been well tested by the team at VPSinEU.com and it works perfectly fine.

In today’s tutorial we’ll show you how to setup HTTP2 in cPanel/WHM Linux VPS using EasyApache3. Although this feature is still in BETA (as of writing this article), it’s been well tested by the team at VPSinEU.com and it works perfectly fine.

What is HTTP/2?

It is a major revision of the HTTP network protocol used by the World Wide Web. It was developed from the earlier experimental SPDY protocol, originally developed by Google. In other words, the main differences between HTTP/2 and HTTP/1 are the following:

HTTP/2 is binary, instead of textual HTTP/2 is fully multiplexed, instead of ordered and blocking HTTP/2 can therefore use one connection for parallelism HTTP/2 uses header compression to reduce overhead HTTP/2 allows servers to ‘push’ responses proactively into client caches

0. SSH TO YOUR CPANEL LINUX VPS

First thing to do is to login to your cPanel/WHM virtual server via SSH and optionally fire up a screen/tmux session. For example:

ssh YOUR_VPS_IP -p YOUR_VPS_SSH_PORT screen -U -S cpanel-screen

1. INSTALL THE LATEST OPENSSL

Next, navigate to https://www.openssl.org/source/ and grab the latest OpenSSL source code. Upload it on your cPanel/WHM VPS hosting or use the following command to get it directly on your VPS: (make sure to adjust the source url with the latest one)

cd /usr/local/src wget https://www.openssl.org/source/openssl-1.0.2h.tar.gz

once the source is downloaded, extract it in /usr/loca/src and change to the newly extracted OpenSSL directory:

wget https://www.openssl.org/source/openssl-1.0.2h.tar.gz tar zxf openssl-1.0.2h.tar.gz cd openssl-1.0.2h

now, configure the OpenSSL sources using the command below:

./config shared -fPIC --prefix=/opt/ssl --openssldir=/etc/pki/tls

and proceed with making/compiling and installing the sources using:

make make depend make install

ok, if everything went fine, add /opt/ssl/lib to /etc/ld.so.conf.d/openssl102.conf and reload the libraries via ldconfig

echo '/opt/ssl/lib' >> /etc/ld.so.conf.d/openssl102.conf ldconfig

2. INSTALL THE LATEST NGHTTP2

Download the latest nghttp2 source from https://github.com/nghttp2/nghttp2/releases and place it in /usr/local/src. For example:

cd /usr/local/src wget https://github.com/nghttp2/nghttp2/releases/download/v1.13.0... tar zxf nghttp2-1.13.0.tar.gz cd nghttp2-1.13.0

Next, configure the sources using:

./configure --prefix=/opt/nghttp2 OPENSSL_LIBS=/opt/ssl

and compile and install it by running:

make make install

after everything is setup and installed, add /opt/nghttp2/lib to /etc/ld.so.conf.d/nghttp2.conf and update the libraries using:

echo '/opt/nghttp2/lib' > /etc/ld.so.conf.d/nghttp2.conf ldconfig

3. RE-COMPILE APACHE WITH HTTP/2 SUPPORT

You need to recompile/reinstall your Apache webserver using some additional raw options in order to get HTTP/2 support enabled. To achieve this, add the following to /var/cpanel/easy/apache/rawopts/Apache2_4

vim /var/cpanel/easy/apache/rawopts/Apache2_4

--enable-http2=static --with-nghttp2=/opt/nghttp2 --with-ssl=/opt/ssl LDFLAGS=-L/opt/ssl/lib CPPFLAGS=-I/opt/ssl/include

save and close the file. Next, setup the following option in /usr/local/apache/conf/includes/pre_main_global.conf

vim /usr/local/apache/conf/includes/pre_main_global.conf

Protocols h2 h2c http/1.1

and REBUILD your Apache webserver using the EasyApache3 installer either via your WHM/cPanel web interface or via command line.

Once the Apache webserver has been recompiled, restart it using:

service httpd restart

and check whether HTTP/2 has been compiled in it by running the following command:

httpd -M | grep htt

4. INSTALL LATEST CURL FOR TESTING PURPOSES

To test if HTTP/2 is supported on the server, you can use a simple tool like curl or some online tool such as https://tools.keycdn.com/http2-test . Keep in mind though, that HTTP/2 is only supported in newer curl versions, so it’s best to compile the latest version from https://curl.haxx.se/download/ using:

cd /usr/local/src wget https://curl.haxx.se/download/curl-7.50.0.tar.gz tar zxf curl-7.50.0.tar.gz cd curl-7.50.0

./configure --prefix=/opt/curl-ssl --with-ssl=/opt/ssl --enable-http --enable-ftp LDFLAGS=-L/opt/ssl/lib CPPFLAGS=-I/opt/ssl/include --with-nghttp2=/opt/nghttp2 make make install

Now test whether your webserver supports HTTP/2 via:

/opt/curl-ssl/bin/curl -k -v --http2 http://yourdomain.com | less

If you’re one of our Linux VPS Hosting customers we can help you setup HTTP2 on your cPanel/WHM VPS hosting free of charge. Just contact us and some of our experts will complete your request immediately.

Full Story

  Nav
» Read more about: Story Type: Tutorial; Groups: Apache, Linux

« Return to the newswire homepage

This topic does not have any threads posted yet!

You cannot post until you login.