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_modulee 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.txte 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 offmio nginx.conf, ma non fa differenza. Ho anche ri-compilato Nginx con --without-http_gzip_modulee 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!