Nginx modulo Brotli (text compression): differenze tra le versioni

Da Webmobili Wiki.
Riga 43: Riga 43:
export CFLAGS="-m64 -march=native -mtune=native -Ofast -flto -funroll-loops -ffunction-sections -fdata-sections -Wl,--gc-sections"
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"
export LDFLAGS="-m64 -Wl,-s -Wl,-Bsymbolic -Wl,--gc-sections"
./configure --add-module=/path/to/ngx_brotli
./configure --add-module=/home/simonevincenzi/temp/ngx_brotli
make && sudo make install
make && sudo make install
</syntaxhighlight>
</syntaxhighlight>

Versione delle 16:38, 30 gen 2024

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