J'essaie actuellement de configurer Nginx pour servir tous mes fichiers statiques. Puisqu'ils ne seront pas modifiés très fréquemment du tout, je veux que nous le module gzip_static pour me permettre de pré-gzip des copies de mes fichiers pour gagner du temps CPU et permettre une meilleure compression.
J'ai compilé Nginx avec --with-http_gzip_static_module
et l' ai installé pour qu'il serve mes fichiers statiques, aucun problème jusqu'à présent. Je voulais tester et m'assurer que le gzipping statique fonctionnait réellement, alors j'ai fait deux fichiers, test.txt
et test.txt.gz
. La première ligne de chacun des fichiers indique s'ils ont été compressés, puis il y a une nouvelle ligne et 256 caractères aléatoires (différents entre les deux fichiers).
J'ai lu que l'heure de modification du fichier et son équivalent gzippé devraient être les mêmes, et j'ai essayé les deux solutions suivantes:
touch test.*
touch -r test.txt test.txt.gx
Sur ma machine locale, je teste avec curl:
curl $URL/test.txt
Cela fonctionne très bien, je récupère la version que je n'ai pas précompressée, mais quand je fais ça:
curl -H "Accept-Encoding: gzip" $URL/test.txt | gunzip
Je récupère également la version que je n'ai pas précompressée. Je mise essayé gzip off
dans mon nginx.conf
, mais il ne fait pas de différence. J'ai également recompilé Nginx avec --without-http_gzip_module
et cela ne semble pas faire de différence non plus, Nginx compile toujours les choses à la volée.
Je suis assez nouveau pour Nginx, mais je suis vraiment perdu ici.
Voici la sortie de ./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
Et voici mon 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;
}
}
Toute aide est très appréciée!