Welcome php 7.1 and brotli
Привет,
Днес успешно мигрирах root.bg към php 7.1 и добавих поддръжката на протокола за копресиране на google – brotli.
Резултата от двете гореспоменати операции – още по-бърз и оптимизиран root.bg! Welcome php 7.1 and brotli!
Ето и стъпките за инсталиране и конфигуриране на php 7.1 и brotli :
Архитектурата на уеб сървъра ми е 64 битова а за операционна система ползвам debian 8. За целта добавих репото на Ondřej Surý който вече поддържа и пакети за debian 8.
Схемата е следната :
apt-get install apt-transport-https lsb-release ca-certificates wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list apt-get update apt-get install php7.1
След това е нужно да се конфигурира php7.1-fpm
с настройките които досега използвах в php7.0-fpm
. Резултата след това е :
До колкото четох, задължителна част от това wordpress-а ни да работи, е той да е обновен до последната стабилна версия : 4.7
Brotli
Накратко какво е brotli :
Brotli is a generic-purpose lossless compression algorithm that compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling, with a compression ratio comparable to the best currently available general-purpose compression methods. It is similar in speed with deflate but offers more dense compression.
Благодарение на cloudflare, вече има и brotli модул за nginx! Инсталацията му е супер елементарна, като за нея е нужно nginx-а ни да е компилиран ръчно, а не да е инсталиран чрез apt
пакетния мениджър.
cd /usr/src/ git clone https://github.com/cloudflare/ngx_brotli_module.git cd ngx_brotli_module git clone https://github.com/google/brotli.git
После се пуска конфигуриране на nginx : ./configure
с
--add-module=/usr/src/ngx_brotli_module-master/
След успешното компилиране, последното което трябва да се направи, е добавянето на следните редове в /etc/nginx/nginx.conf
:
brotli on; brotli_min_length 1000; brotli_comp_level 5; brotli_types text/plain text/css text/xml application/javascript application/x-javascript application/xml application/xml+rss application/ecmascript application/json image/svg+xml;
Резултата е следния:
Тест-а е направен от https://tools.keycdn.com/brotli-test
Това е!
Alkin
Wednesday March 22nd, 2017 @ 09:00
А има ли някакъв начин brotli да се инсталира без да се компилира Nginx, да кажем като Dynamic Module. Тоест да се добави към вече инсталиран с yum Nginx.
Nikolay Nikolov
Wednesday March 22nd, 2017 @ 09:12
Здравей,
За съжеление няма такъв начин. По принцип може да инсталираш самия пакет brotli чрез yum install brotli или apt-get install brotli, обаче като модул за самия уеб сървър е нужно да се компилира.
Евентуално за напред ако го включат по подразбиране в модулите на nginx , но не е ясно кога ще стане това. Във форума на nginx има тема за това : https://trac.nginx.org/nginx/ticket/798
Alkin
Wednesday March 22nd, 2017 @ 09:56
благодаря, за изчерпателния отговор. В момента използвам това: https://medium.com/@karljohnson/nginx-more-get-http-2-with-alpn-pagespeed-modsecurity-and-much-more-in-one-single-package-7d28a44d1854#.8nm81invn и за това мисля, че ще изчакам с brotli за сега. 🙂
Nikolay Nikolov
Wednesday March 22nd, 2017 @ 10:03
@alkin:disqus , мен ако питаш, по-добре да си го компилираш. В момента както ти е инсталиран nginx-а , можеш да направиш nginx -V и да си копираш всичко след configure – и да го използваш при ръчното компилиране. Така ще запазиш всички директории, логове и конфизи и ще имаш възможността да си надграждаш с каквото искаш, а именно модула на brotli или някои друг. Във wiki-то им има списък с всичките модули , кой от кой по-полезен 😀 – ето ти линк : https://www.nginx.com/resources/wiki/modules/
Успех!