Since Chrome is soon dropping HTTP/2 via NPN we need to support HTTP/2 via ALPN, however... on Ubuntu 14.04 NGINX has been compiled with OpenSSL 1.0.1 which does not support ALPN :( So let's fix that!
First we need to upgrade OpenSSL, since that is not that easy to do ourselfs I use the package repository provided by Ondřej Surý for originally PHP but also includes a up-to-date OpenSSL package.
# Add the apt repository sudo add-apt-repository -y ppa:ondrej/php # Update the package list sudo apt-get update # Upgrade OpenSSL sudo apt-get upgrade openssl
The following steps assume you have NGINX 1.9.5+ already running and have OpenSSL 1.0.2 installed on your system (check with the
The commands below should get you with your version of NGINX (1.9.5+) compiled with OpenSSL 1.0.2+. But your mileage may vary.
# Install package building tools sudo apt-get install -y dpkg-dev # (optional) cleanup previous work directory #sudo rm -R /opt/nginx # Create a work directory sudo mkdir /opt/nginx # Switch to our work directory cd /opt/nginx # Get NGINX source files sudo apt-get source nginx # Install NIGNX build dependencies sudo apt-get -y build-dep nginx # Switch to the source files directory # You might need to change the version number in your case cd nginx-1.* # Build the .deb package files sudo dpkg-buildpackage -b # Move back to out work directory where the .deb files are placed cd /opt/nginx # Stop NGINX sudo service nginx stop # Install the newly build .deb file sudo dpkg --install nginx_1.*~trusty_amd64.deb # Start NGINX sudo service nginx start # Profit ;)