Attualmente sto cercando di configurare Nginx per servire tutti i miei file statici. Dal momento che non verranno cambiati molto frequentemente, voglio che il modulo gzip_static mi consenta di pre-gzip copie dei miei file per risparmiare un po 'di tempo della CPU e consentire una migliore compressione.
Ho compilato Nginx --with-http_gzip_static_module
e l'ho configurato in modo che serva i miei file statici, finora nessun problema. Volevo testare e assicurarmi che il gzipping statico funzionasse davvero, quindi ho creato due file test.txt
e test.txt.gz
. La prima riga di ciascuno dei file indica se sono stati compressi con gzip, quindi c'è una nuova riga e 256 caratteri casuali (diversi tra i due file).
Ho letto che il tempo di modifica del file e della sua controparte gzip dovrebbe essere lo stesso e ho provato entrambi i seguenti:
touch test.*
touch -r test.txt test.txt.gx
Sul mio computer locale, sto testando con l'arricciatura:
curl $URL/test.txt
Funziona bene, torno indietro la versione che non ho pre-compresso, ma quando faccio questo:
curl -H "Accept-Encoding: gzip" $URL/test.txt | gunzip
Ricevo anche la versione che non avevo precompresso. Ho provato a impostare il gzip off
mio nginx.conf
, ma non fa differenza. Ho anche ri-compilato Nginx con --without-http_gzip_module
e che non sembra fare la differenza, Nginx gzips ancora le cose stesse al volo.
Sono abbastanza nuovo per Nginx, ma sono davvero in perdita qui.
Ecco l'output di ./nginx -V
built by gcc 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC)
configure arguments: --sbin-path=$SOMEPATH/nginx --prefix=$SOMEPATH --user=$ME --group=$MYGROUP --with-http_gzip_static_module --without-http_gzip_module
Ed ecco il mio nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
error_log logs/error.log;
pid logs/nginx.pid;
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
gzip_static on;
sendfile on;
keepalive_timeout 65;
access_log logs/access.log;
server {
listen XXXX;
server_name foo.bar.com;
location / {
root html;
}
error_page 404 404.html;
error_page 500 502 503 504 50x.html;
}
}
Qualsiasi aiuto è bene accetto!