Getting Plesk support for your HTTP/2
To help you understand how Plesk can offer support for your HTTP/2, let’s first visualize how it differs from HTTP/1. Imagine a remote village whose only link to the city is a tiny footbridge. The footbridge is so small it only allows one person to walk on it at a time. With this infrastructure, transferring supplies takes ages.
Now, imagine that the village builds a bridge big enough to support trucks travelling in either direction. The time taken to shift supplies dramatically reduces. This, in a nutshell, is the difference between HTTP/1 and HTTP/2.
*HTTP/2 (also HTTP/2.0 and HTTP 2.0) is the second major version of the HTTP network protocol we use online. HTTP/2 support is available for Plesk customers starting from version 12.5.30 Update #28 and requires the latest version of NGINX.
Having HTTP/2 on your website
Luckily, as a developer or owner, you don’t need to worry about building bridges. Your main concern is to find ways to improve your website’s loading time. And avoid losing valuable viewers. As a Plesk user, this relatively new protocol is available to you. You simply need to upgrade your existing website to utilize this Plesk technology.
Plesk’s support for HTTP/2 helps increase the speed and efficiency with which a website loads. This benefits areas such as SEO, which is greatly improved when a website loads quickly. Moreover, the rise in popularity of mobile sites means you need almost-instant loading times. An HTTP/2-enabled website will quickly top rankings, beating other sites still using the original protocol.
Before Switching from HTTP/1 to HTTP/2
Before switching from HTTP/1 to HTTP/2, you need to ensure that your website complies with certain criteria. You need to have –
- Plesk’s latest update, version 12.5.30, update #28.
- The latest version of NGINX
- SSL encryption on your website
If you don’t meet all 3 of these requirements, your website will continue to run on HTTP 1.1.
The process to switch your site to HTTP/2 is pretty simple. You can follow our detailed guide, including the command lines you need to input. If you’re unsure whether you have successfully switched protocol, online testing services can confirm whether a particular domain is HTTP/2 enabled.
How to Enable HTTP/2 support for your website
Make sure your NGINX server is up-to-date and running from Tools & Settings -> Server Components and Tools & Settings -> Services Management.
Login to your server via SSH under
root and enable Plesk HTTP/2 support using the following command line utility:
# plesk bin http2_pref enable
During the last step your NGINX server will be tuned to use the TLS protocol. Thus rebuilding the whole web server configuration, so your websites and your customers’ websites with SSL support will transfer to HTTP/2.
Please check the output of the command for errors or warnings during switching to HTTP/2. If there are any problems, skip below for Troubleshooting.
To return to HTTP 1.x and to disable HTTP/2, please use the following command:
# plesk bin http2_pref disable
For HTTP/2 to work properly on Google Chrome, the NGINX web server must support the ALPN. Normally, this requires you to go through detailed documentation and testing. But, with Plesk, the hard work is already done for you.
The operating systems that Plesk supports for HTTP/2 are –
- CentOS 7
- RedHat Enterprise Linux 7
- Ubuntu 14.04
- Ubuntu 16.04
- Debian 8
HTTP/2 Support Troubleshooting
If you have trouble enabling HTTP/2 support, or when checking the site you see HTTP 1.x protocol, try the steps below.
1. Make sure that SSL support is enabled for the web site in the Hosting Settings section of the domain. HTTP/2 is for SSL sites only, so non-SSL sites will continue to work under HTTP /1.x. That is a restriction of nginx web server and web browsers.
2. Check that nginx is enabled:
# plesk sbin nginxmng -s
Enable it if necessary:
# plesk sbin nginxmng -e
3. Check that OpenSSL package has the version 1.0.1 or higher:
# rpm -qa | grep openssl
4. Check that there is no custom configuration template in
Remove it if it was found and re-create configuration files:
# plesk sbin httpdmng --reconfigure-all
Alternatively, if you do not want to remove your customizations, you can modify the following file
Do this by first finding the row similar to
($OPT['default'] ? ' default_server' : '') . ($OPT['ssl'] ? ' ssl' : '') ?>;
Then, replace it with the following two rows:
($OPT['default'] ? ' default_server' : '') . ($OPT['ssl'] ? ' ssl' : '') .
($OPT['ssl'] && $VAR->domain->physicalHosting->proxySettings['nginxHttp2'] ? ' http2' : '') ?>;
After that run the command:
# plesk bin http2_pref enable
5. In case of ssl connection problems with HTTP/2 enabled, ensure that the
ssl_ciphers directive in
/etc/nginx/conf.d/ssl.conf or in customized
nginxDomainVirtualHost.php has the following value:
6. If your site doesn’t work in browsers with HTTP/2 enabled, you probably don’t have the right ciphers and protocols for HTTP/2 support. So use the
sslmng utility from Plesk to set up available protocols and TLS ciphers list after enabling HTTP/2. For example, if you want to use exactly the same ciphers list as Plesk, the command is the following.
#plesk sbin sslmng --services=nginx --custom --ciphers="EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EECDH+CHACHA20:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EDH+CHACHA20" --protocols="TLSv1 TLSv1.1 TLSv1.2"
Configuration will be stored in the
/etc/nginx/conf.d/ssl.conf file, but we don’t recommend editing this file manually.
If none of the steps above help you, please contact our Plesk technical support.
Ongoing Plesk support for HTTP/2
This new technology ensures major search engines have enough time to crawl through large parts of your website. In a short period of time, you should see better indexation of your website. And, potentially, a lower bounce rate thanks to the faster loading time delivered by HTTP/2.
Once you upgrade your website to use HTTP/2, remember Plesk always has your back. If you have any issues, our support guide and trained technical staff can always give you the help you need.
What do you think about the switch from HTTP/1 to HTTP/2? Let us know in the comments below!