Nginx vous permet de mapper les extensions de fichier aux types MIME. Comme la documentation dit , il vient même avec une liste pré-construite de types MIME (collée à la fin de la question).
J'ai toujours fait confiance à cette liste, et les choses fonctionnent très bien, mais maintenant j'ai remarqué que certains types manquent.
Qu'en est-il de application/javascript
et application/json
?
Il utilise l'ancien obsolète application/x-javascript
, et j'imagine que c'est pour assurer IE support ... mais est-ce vraiment correct?
De plus, quels types devraient être compressés?
J'ai toujours utilisé la liste dans l'extrait de code suivant, bien que j'admette que ce n'était qu'une partie d'un exemple de fichier de configuration nginx, que j'ai utilisé comme exemple il y a quelques années, lorsque j'ai commencé à travailler avec nginx.
Dois-je également inclure application/json
?
http {
include mime.types;
default_type application/octet-stream;
gzip_types text/plain text/xml text/css
text/comma-separated-values
text/javascript application/x-javascript
application/atom+xml;
# text/html is included in the gzip list by default
# ...
}
Les types MIME par défaut dans /etc/nginx/mime.types
.
types {
text/html html htm shtml;
text/css css;
text/xml xml;
image/gif gif;
image/jpeg jpeg jpg;
application/x-javascript js;
application/atom+xml atom;
application/rss+xml rss;
text/mathml mml;
text/plain txt;
text/vnd.Sun.j2me.app-descriptor jad;
text/vnd.wap.wml wml;
text/x-component htc;
image/png png;
image/tiff tif tiff;
image/vnd.wap.wbmp wbmp;
image/x-icon ico;
image/x-jng jng;
image/x-ms-bmp bmp;
image/svg+xml svg svgz;
image/webp webp;
application/Java-archive jar war ear;
application/mac-binhex40 hqx;
application/msword doc;
application/pdf pdf;
application/postscript ps eps ai;
application/rtf rtf;
application/vnd.ms-Excel xls;
application/vnd.ms-PowerPoint ppt;
application/vnd.wap.wmlc wmlc;
application/vnd.google-earth.kml+xml kml;
application/vnd.google-earth.kmz kmz;
application/x-7z-compressed 7z;
application/x-cocoa cco;
application/x-Java-archive-diff jardiff;
application/x-Java-jnlp-file jnlp;
application/x-makeself run;
application/x-Perl pl pm;
application/x-pilot prc pdb;
application/x-rar-compressed rar;
application/x-redhat-package-manager rpm;
application/x-sea sea;
application/x-shockwave-flash swf;
application/x-stuffit sit;
application/x-tcl tcl tk;
application/x-x509-ca-cert der pem crt;
application/x-xpinstall xpi;
application/xhtml+xml xhtml;
application/Zip Zip;
application/octet-stream bin exe dll;
application/octet-stream deb;
application/octet-stream dmg;
application/octet-stream eot;
application/octet-stream iso img;
application/octet-stream msi msp msm;
audio/midi mid midi kar;
audio/mpeg mp3;
audio/ogg ogg;
audio/x-m4a m4a;
audio/x-realaudio ra;
video/3gpp 3gpp 3gp;
video/mp4 mp4;
video/mpeg mpeg mpg;
video/quicktime mov;
video/webm webm;
video/x-flv flv;
video/x-m4v m4v;
video/x-mng mng;
video/x-ms-asf asx asf;
video/x-ms-wmv wmv;
video/x-msvideo avi;
}
Il utilise l'ancienne application déconseillée/x-javascript, et j'imagine que c'est pour assurer le support IE ... mais est-ce vraiment correct?
Et bien non:
Changes with nginx 1.5.4 27 Aug 2013
*) Change: the "js" extension MIME type has been changed to
"application/javascript"; default value of the "charset_types"
directive was changed accordingly.
Dois-je également inclure application/json?
Pourquoi pas? Le défaut mime.types
le fichier de nginx ne contient que des types MIME pour des extensions de fichier plus ou moins courantes. Et il n'est certainement pas très courant d'avoir des fichiers statiques json
.
De plus, quels types devraient être compressés?
Vous pouvez inclure des types MIME pour tout le contenu bien compressible que vous avez sur votre site. Mais pour les fichiers statiques, il sera préférable d'utiliser module statique gzip .