J'ai besoin d'activer la compression gzip sur le serveur nginx. Comme je l'ai observé à partir des outils firfox firebug NET, j'ai constaté que les fichiers html sont compressés au format gzip. Mais pas les fichiers javascript et les fichiers CSS.
J'ai déjà vérifié Mime.types et le fichier de configuration nginx / etc/nginx/ngnix.conf et je n'ai trouvé aucun problème. toujours pas en mesure de voir la compression Gzip css et javascript. Mes entrées NGINX.conf sont comme ci-dessous
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
Il s'agit d'une configuration de travail que j'utilise actuellement en production.
gzip on;
gzip_disable "msie6";
gzip_comp_level 6;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_proxied any;
gzip_types
text/plain
text/css
text/js
text/xml
text/javascript
application/javascript
application/json
application/xml
application/rss+xml
image/svg+xml;
Cette configuration a été testée via tools.pingdom.com.
Vous pouvez trouver un exemple de configuration à partir du code html5 passe-partout .
# Activer Gzip Gzip on; Gzip_http_version 1.0; Gzip_comp_level 2; Gzip_min_length 1100; gzip_buffers 4 8k; gzip_proxied any; gzip_types # text/html est toujours compressé par HttpGzipModule text/css text/javascript text/xml text/plain text/x-component application/javascript application/json application/xml application/rss + xml font/truetype font/opentype application/vnd.ms-fontobject image/svg + xml; gzip_static on; gzip_proxied expired no-cache no-store private auth; gzip_disable "MSIE [1-6] \."; gzip_vary on;
Si certains de vos fichiers sont compressés et d'autres non, alors votre gzip fonctionne mais vous avez peut-être manqué la définition dans gzip_types. Par exemple, les fichiers javascript peuvent renvoyer dans les en-têtes l'un des types suivants:
Pour compresser tous les fichiers javascript, les trois définitions doivent être incluses dans gzip_types.
Vous devez vérifier en-têtes de réponse quel type de contenu est retourné pour un tel fichier non compressé, puis assurez-vous qu'il est également défini dans gzip_types.
Vos entrées gzip sont-elles dans la "portée" de la configuration nginx que js, css, etc. les actifs sont servis? Je demande parce que si vous utilisez une sorte de framework, il existe parfois différents blocs de localisation {...} qui gèrent les requêtes html par rapport aux actifs.
De plus, lorsque vous testez dans un navigateur, assurez-vous de faire un rafraîchissement brutal pour forcer le serveur à vous donner une "nouvelle copie" de tout ce que vous regardez.
Enfin, vous pouvez utiliser gzip_types * pour autoriser le gzip de tout. Peut-être que quelqu'un d'autre peut sonner si c'est une bonne pratique ou non.
Pour compresser SVG, cette ligne est correcte:
image/svg+xml svg svgz;