HTTP/2 на этом сайте

Обновил на этом сайте nginx до версии 1.9.5 и включил поддержку HTTP/2. Для теста погонял сайт до и после на WebPagetest. Честно говоря, результат измерений не сильно впечатлил, вот результат до:

а вот после:

Но визуально, возможно подсознательно, кажется что сайт стал грузиться шустрее.

Ниже информация о том, что нужно сделать для апгрейда nginx в Ubuntu.

Сначала обязательно сделайте резервную копию директории с конфигами веб-сервера — скопировать стоит всю директорию /etc/nginx.

Затем проверьте какая версия уже установлена и какая доступна:

sudo apt-cache policy nginx
nginx:
Installed: 1.4.6-1ubuntu3.1
Candidate: 1.4.6-1ubuntu3.1
Version table:
*** 1.4.6-1ubuntu3.1 0
500 http://mirrors.digitalocean.com/ubuntu/ trusty-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages
100 /var/lib/dpkg/status
1.4.6-1ubuntu3 0
500 http://mirrors.digitalocean.com/ubuntu/ trusty/main amd64 Packages

В моем случае в официальном репозитории Ubuntu пока лежит nginx 1.4.6, но я знаю, что в репозитории разработчиков nginx доступен пакет с версией 1.9.5. Для того чтобы добавить этот репозиторий создайте в директории /etc/apt/sources.list.d файл nginx.list с таким содержимым:

deb http://nginx.org/packages/mainline/ubuntu/ trusty nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ trusty nginx

Далее, чтобы при установке не получить ошибку: W: GPG error: http://nginx.org trusty Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ABF5BD827BD9BF62 скачайте с http://nginx.org/en/linux_packages.html ключ http://nginx.org/keys/nginx_signing.key и добавьте его в keyring:

wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key

Теперь обновим информацию о репозиториях и еще раз посмотрим какие версии nginx доступны, должен получиться результат вида:

sudo apt-get update
sudo apt-cache policy nginx
nginx:
Installed: 1.4.6-1ubuntu3.1
Candidate: 1.9.5-1~trusty
Version table:
1.9.5-1~trusty 0
500 http://nginx.org/packages/mainline/ubuntu/ trusty/nginx amd64 Packages
1.4.6-1ubuntu3.3 0
500 http://mirrors.digitalocean.com/ubuntu/ trusty-updates/main amd64 Packages
*** 1.4.6-1ubuntu3.1 0
500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages
100 /var/lib/dpkg/status
1.4.6-1ubuntu3 0
500 http://mirrors.digitalocean.com/ubuntu/ trusty/main amd64 Packages

  Еще раз убедитесь, что забэкапили директорию /etc/nginx. В моем случае пришлось удалить старую версию nginx, иначе я получал такую же ошибку какая описана тут, а удаление текущей версии программы удаляет существующие конфиги, поэтому критически важно иметь их резервную копию перед выполнением следующего шага. Удаляем текущую версию nginx:

sudo apt-get purge nginx nginx-common

И ставим новую версию:

sudo apt-get install nginx

nginx -v
nginx version: nginx/1.9.5

Готово.

Теперь осталось вернуть на место конфиги из бэкапа и активировать HTTP/2 для выбранных хостов. В моем случае я заменил в конфиге:

server {
listen       443 ssl;
server_name  romka.eu;
...
}

на:

server {
        listen       443 ssl http2;
        server_name  romka.eu;
        ...
}

  Преимущества HTTP/2 я описал в предыдущем посте.