Anonimo
Accesso non effettuato
discussioni
contributi
registrati
entra
Webmobili Wiki
Ricerca
Modifica di
Nginx modulo Brotli (text compression)
(sezione)
Da Webmobili Wiki.
Namespace
Pagina
Discussione
Altro
Altro
Azioni sulla pagina
Leggi
Modifica
Cronologia
Attenzione:
non hai effettuato l'accesso. Se effettuerai delle modifiche il tuo indirizzo IP sarà visibile pubblicamente. Se
accedi
o
crei un'utenza
, le tue modifiche saranno attribuite al tuo nome utente, insieme ad altri benefici.
Controllo anti-spam.
NON
riempirlo!
== I passi da seguire == === Prerequisiti === Intanto bisogna capire quale versione di '''Nginx''' si ha installata. <syntaxhighlight lang="bash"> sudo nginx -v </syntaxhighlight> Qui useremo la ''1.22.1'' Installare <code>cmake</code> e <code>git</code> per compilare codice sorgente. <syntaxhighlight lang="bash"> sudo apt install git cmake zlib1g-dev </syntaxhighlight> === Scaricamento dei sorgenti === Creare una cartella temporanea in cui lavorare per scaricare i sorgenti e compilare dipendenze e moduli. <syntaxhighlight lang="bash"> mkdir temp cd temp </syntaxhighlight> Scaricare dal sito ufficiale di '''Nginx''' il codice sorgente corrispondente alla propria versione. <syntaxhighlight lang="bash"> 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 </syntaxhighlight> === Compilazione del modulo ngx_brotli === Ora segue una parte nella quale bisogna avere fede.<br/> Credo che compili il modulo <code>ngx_brotli</code> assicurandosi di scaricare prima le eventuali dipendenze. <syntaxhighlight lang="bash"> 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 ../../../.. </syntaxhighlight> poi <syntaxhighlight lang="bash"> 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 </syntaxhighlight> === Compilazione dinamica di Nginx === Se tutto è andato bene procedere, altrimenti non si può fare. Dal folder <code>nginx-1.22.1</code> <syntaxhighlight lang="bash"> ./configure --with-compat --add-dynamic-module=/home/simonevincenzi/temp/ngx_brotli make modules </syntaxhighlight> Questo crea i file <code>ngx_http_brotli_filter_module.so</code> e <code>ngx_http_brotli_static_module.so</code> nella cartella <code>objs</code> === Configurazione Nginx === I due file vanno copiati nella cartella <code>/usr/lib/nginx/modules/</code> (se non esiste va creata).<br/> Sempre dal folder <code>nginx-1.22.1</code> <syntaxhighlight lang="bash"> sudo mkdir /usr/lib/nginx sudo mkdir /usr/lib/nginx/modules sudo cp objs/ngx_http_brotli_filter_module.so /usr/lib/nginx/modules sudo cp objs/ngx_http_brotli_static_module.so /usr/lib/nginx/modules </syntaxhighlight> A questo punto dobbiamo comunicare a '''Nginx''' la presenza del modulo. <syntaxhighlight lang="bash"> sudo nano /etc/nginx/nginx.conf </syntaxhighlight> E prima del blocco <code>http</code> aggiungere <syntaxhighlight lang="bash"> load_module modules/ngx_http_brotli_filter_module.so; load_module modules/ngx_http_brotli_static_module.so; </syntaxhighlight> Poi inserirsi dentro ad <code>http</code> e aggiungere le righe <syntaxhighlight lang="bash"> # Enable Brotli compression brotli on; brotli_comp_level 6; brotli_static on; brotli_types application/atom+xml application/javascript application/json application/vnd.api+json application/rss+xml application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype application/x-font-ttf application/x-javascript application/xhtml+xml application/xml font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml; </syntaxhighlight> Verificare la correttezza con <syntaxhighlight lang="bash"> sudo nginx -t </syntaxhighlight> e riavviare nginx <syntaxhighlight lang="bash"> sudo systemctl restart nginx.service </syntaxhighlight> === Testare il supporto di compressione === Runnare il seguente comando (non dalla stessa macchina) e verificare l'header '''content-encoding: br''' <syntaxhighlight lang="bash"> curl -H 'Accept-Encoding: br' -I https://www.designbest.com/it </syntaxhighlight>
Oggetto:
Per favore tieni presente che tutti i contributi a Webmobili Wiki possono essere modificati, stravolti o cancellati da altri contributori. Se non vuoi che i tuoi testi possano essere alterati, allora non inserirli.
Inviando il testo dichiari inoltre, sotto tua responsabilità, che è stato scritto da te personalmente oppure è stato copiato da una fonte di pubblico dominio o similarmente libera (vedi
Webmobili Wiki:Copyright
per maggiori dettagli).
Non inviare materiale protetto da copyright senza autorizzazione!
Annulla
Guida
(si apre in una nuova finestra)
Navigazione
Navigazione
Pagina principale
Ultime modifiche
Una pagina a caso
Aiuto su MediaWiki
Pagine speciali
Strumenti wiki
Strumenti wiki
Strumenti pagine
Strumenti pagine
Strumenti pagina utente
Altro
Puntano qui
Modifiche correlate
Informazioni pagina
Registri della pagina