nginx 1.9.4 z obsługą protokołu HTTP/2

nginx_http2

Dziś przedstawiam wam poradnik kompilacji nginx-1.9.4 z obsługą protokołu HTTP/2

Same FAQ dot nowego protokołu i opis znajduje się tutaj: http://http2.github.io

HTTP/2 jest największym krokiem w rozwoju HTTP (Hypertext Transfer Protocol) od 1999 roku, gdy zaadaptowano protokół z numerkiem 1.1. Upłynęło już 16 lat i nowy (przyszły) standard zawiera naprawdę wiele udoskonaleń oraz zmian. Jakich? HTTP/2 wprowadza zmiany obejmujące prędkość wczytywania stron internetowych, dłuższe połączenia czy push dla serwerów.

Kompilacja może być uznana jako PRODUKCYJNA, kompletny serwer WWW nginx-1.9.4 (Kompilowane na Debian 8!) wraz z modułem – standardowo – GooglePageSpeed w najnowszej wersji.

1. Potrzebne pakiety

apt-get update ; apt-get upgrade -y
apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev unzip curl libcurl4-openssl-dev libossp-uuid-dev nano curl -y

2. Pobieramy źródła

echo 'deb http://ftp.pl.debian.org/debian testing main contrib non-free' >> /etc/apt/sources.list
echo 'deb-src http://ftp.pl.debian.org/debian testing main contrib non-free' >> /etc/apt/sources.list
apt-get update; apt-get build-dep nginx 
katalog="/var/compile" ; mkdir -p $katalog ; cd $katalog
apt-get source nginx > /dev/null
source="/var/compile/nginx-1.9.4"

3. Patch (http/2)

cd $source ; curl -O http://nginx.org/patches/http2/patch.http2.txt
patch -p1 --dry-run < patch.http2.txt
patch -p1 < patch.http2.txt

4. Moduł PageSpeed

cd $source/debian/modules
wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.9.32.6-beta.tar.gz
tar zxvf v1.9.32.6-beta.tar.gz
cd $source/debian/modules/ngx_pagespeed-1.9.32.6-beta
wget https://dl.google.com/dl/page-speed/psol/1.9.32.6.tar.gz
tar -xzvf 1.9.32.6.tar.gz

5. Przygotowany przeze mnie gotowy plik konfiguracyjny

cd $source/debian; rm rules; curl -O http://pliki.linuxiarz.pl/09-2015/rules

6. Kompilacja; Tworzenie paczek i ich instalacja

cd $source ; dpkg-buildpackage -b
cd ..
dpkg --install nginx-common_1.9.4-1_all.deb nginx_1.9.4-1_all.deb nginx-extras_1.9.4-1_amd64.deb

7. Wstępna konfiguracja

rm /etc/nginx/sites-available/* ; rm /etc/nginx/sites-enabled/* 
rm /etc/nginx/nginx.conf ; wget http://pliki.linuxiarz.pl/08-2015/nginx.conf -O /etc/nginx/nginx.conf 
wget http://pliki.linuxiarz.pl/09-2015/default_http2.conf -O /etc/nginx/conf.d/default.conf
mkdir -p /etc/ssl/private
chmod 710 /etc/ssl/private
cd /etc/ssl/private
openssl dhparam -out dhparams.pem 2048
chmod 600 /etc/ssl/private/dhparams.pem
openssl genrsa -out /etc/nginx/privkey.pem 2048
openssl req -new -x509 -key /etc/nginx/privkey.pem -out /etc/nginx/cacert.pem -days 1095

8. Uruchomienie serwera WWW nginx

/etc/init.d/nginx restart

Dla Przeglądarki Firefox istnieje rozszeżenie o nazwie SPDY indicator i w sumie dla Chrome też jest SPDY indicator

Gotowe paczki: http://kompilacje.linuxiarz.pl/Debian%208/nginx-1.9.4-pagespeed-http2/

Poniżej zrzut z Firefoxa zaraz po kompilacji:
http_2