Nginx modulo Brotli (text compression)
Da Webmobili Wiki.
Diverse madonne hanno forgiato questa guida.
La fonte principale è https://github.com/google/ngx_brotli
ma è scritto male, perciò lo scrivo molto meglio qua sotto.
I passi da seguire
Intanto bisogna capire quale versione di Nginx si ha installata.
sudo nginx -v
Qui useremo la 1.22.1
Installare cmake per compilare codice sorgente.
sudo apt install cmake
Creare una cartella temporanea in cui lavorare per scaricare i sorgenti e compilare dipendenze e moduli.
mkdir temp
cd temp
Scaricare dal sito ufficiale di Nginx il codice sorgente corrispondente alla propria versione.
wget https://nginx.org/download/nginx-1.22.1.tar.gz
tar -xvf nginx-1.22.1.tar.gz
rm nginx-1.22.1.tar.gz
Ora segue una parte nella quale bisogna avere fede.
Credo che compili il modulo ngx_brotli assicurandosi di scaricare prima le eventuali dipendenze.
git clone --recurse-submodules -j8 https://github.com/google/ngx_brotli
cd ngx_brotli/deps/brotli
mkdir out && cd out
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_C_FLAGS="-Ofast -m64 -march=native -mtune=native -flto -funroll-loops -ffunction-sections -fdata-sections -Wl,--gc-sections" -DCMAKE_CXX_FLAGS="-Ofast -m64 -march=native -mtune=native -flto -funroll-loops -ffunction-sections -fdata-sections -Wl,--gc-sections" -DCMAKE_INSTALL_PREFIX=./installed ..
cmake --build . --config Release --target brotlienc
cd ../../../..
poi
cd nginx-1.22.1
export CFLAGS="-m64 -march=native -mtune=native -Ofast -flto -funroll-loops -ffunction-sections -fdata-sections -Wl,--gc-sections"
export LDFLAGS="-m64 -Wl,-s -Wl,-Bsymbolic -Wl,--gc-sections"
./configure --add-module=/home/simonevincenzi/temp/ngx_brotli
make && sudo make install