Nginx, SPDY, Google PageSpeed, Debian, gotowy z paczki

Nginx, SPDY, Google PageSpeed, Debian, gotowy z paczki

SSL zakupiony więc fajnie mieć coś więcej niż szyfrowanie bloga. O protokole SPDY można znaleść dużo informacji w necie więc nie bedę się tutaj o tym rozpisywał.

W pierwszej kolejności musimy dodać repo dotdeb do naszego systemu, do pliku /etc/apt/sources.list dodajemy wpisy.

vim /etc/apt/sources.list
deb http://packages.dotdeb.org wheezy all
deb-src http://packages.dotdeb.org wheezy all

oraz dodajemu klucz GPG

wget http://www.dotdeb.org/dotdeb.gpg
apt-key add dotdeb.gpg

Teraz możemy zainstalować przygotowanego nginx z obsługa SPDY oraz pagespeed.

apt-get install nginx-extras

Poniżej gotowy kawałek konfiguracji dla nginx z wykorzystaniem SPDY, w konfiguracji jest też zablokowany SSLv3:

server {
    listen 80 default;
    server_name domena.pl www.domena.pl;
    rewrite ^/(.*) https://www.domena.pl/$1 permanent;
}

server {
    listen 443 ssl spdy;
    access_log /var/www/domena.pl/domena.pl/log/access.log main; #access logi
    error_log /var/www/domena.pl/domena.pl/log/error.log; # error logi
    server_name www.domena.pl;
    server_tokens off;
    pagespeed on;

    root /var/www/domena.pl/app;

    ssl on;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_certificate /var/www/domena.pl/ssl/certyfikat.crt;
    ssl_certificate_key /var/www/domena.pl/ssl/certyfikat.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EECDH:EDH+aRSA:RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;
    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";

    location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
    location ~ "^/ngx_pagespeed_static/" { }
    location ~ "^/ngx_pagespeed_beacon$" { }
    location /ngx_pagespeed_statistics { allow 127.0.0.1; deny all; }
    location /ngx_pagespeed_global_statistics { allow 127.0.0.1; deny all; }
    location /ngx_pagespeed_message { allow 127.0.0.1; deny all; }
    location /pagespeed_console { allow 127.0.0.1; deny all; }

    location / {
        index  index.html; # jakie plik sa indeksem strony
    }
    
    location ~ /\.ht {
        deny all;
    }

}

Przetestować poprawność działania SPDY możmy na stronie http://spdycheck.org/

Wynik powinien wygladać tak:

spdy