Nginx Mime Typen und GZIP

8

Mit Nginx können Sie Dateierweiterungen MIME-Typen zuordnen. Wie in der Dokumentation angegeben , enthält es sogar eine vorgefertigte Liste von MIME-Typen (am Ende der Frage eingefügt).

Ich habe dieser Liste immer vertraut und die Dinge funktionieren großartig, aber jetzt habe ich festgestellt, dass einige Typen fehlen.

Was ist mit application/javascriptund application/json?

Es verwendet das alte veraltete application/x-javascriptund ich stelle mir vor, dass es die IE-Unterstützung sicherstellen soll ... aber ist es wirklich in Ordnung?


Welche Typen sollten auch gezippt werden?

Ich habe die Liste immer im folgenden Snippet verwendet, obwohl ich zugebe, dass sie nur Teil einer Beispiel-Nginx-Conf-Datei war, die ich vor einigen Jahren als Beispiel verwendet habe, als ich anfing, mit Nginx zu arbeiten.

Sollte ich auch einschließen 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                   

    # ...
}

Die Standard-MIME gibt ein /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;
}
tompave
quelle
Wenn die Standardeinstellungen von nginx aktualisiert werden müssen, sollten Sie dies mit den Nginx-Entwicklern besprechen.
Michael Hampton
Ich könnte. Bei dieser Frage geht es mehr darum herauszufinden, was andere Leute tun. Das ist, ob sie die Standardliste verwenden oder nicht.
Tompave

Antworten:

14

Die umfassendste, modernste und kompatibelste Konfiguration finden Sie im GitHub-Repository von h5bp .

application/x-javascript ist alt und wird für die Internet Explorer-Unterstützung nicht benötigt.

Ich werde die Konfigurationen hier nicht einfügen, da einige Leute sie möglicherweise kopieren / einfügen. Stattdessen verlinke ich direkt zu den Masterdateien im h5bp-Repository. Dies stellt sicher, dass die Benutzer immer die neueste Version kopieren / einfügen:

Im Allgemeinen ist es ratsam, nur die MIME / gzip-Typen festzulegen, die Sie wirklich bedienen möchten. Dies beschleunigt Nginx, da es sehr schnell zurückgreifen kann und die Liste kurz ist.

Fleischwolf
quelle
Warum sagst du das? Zum Beispiel für eine .woff Datei sowohl Google Web Fonts und Wikipedia Verwendung application/x-font-woffaber H5BP Anwendungen application/font-woff.
Alix Axel
Könnte sein, aber beide sind falsch, der richtige MIME-Typ für WOFF ist es tatsächlich application/font-woff.
Fleischwolf
2

Ich habe eine Liste zusammengestellt, die kürzer ist und meiner Meinung nach besser für die heutigen Standards geeignet ist:

types {
    application/atom+xml                atom;
    application/dart                    dart;
    application/gzip                    gz;
    application/java-archive            jar war ear;
    application/javascript              js jsonp;
    application/json                    json;
    application/owl+xml                 owl owx;
    application/pdf                     pdf;
    application/postscript              ai eps ps;
    application/rdf+xml                 rdf;
    application/rss+xml                 rss;
    application/vnd.ms-fontobject       eot;
    application/x-7z-compressed         7z;
    application/x-bittorrent            torrent;
    application/x-chrome-extension      crx;
    application/x-font-otf              otf;
    application/x-font-ttf              ttc ttf;
    application/x-font-woff             woff;
    application/x-opera-extension       oex;
    application/x-rar-compressed        rar;
    application/x-shockwave-flash       swf;
    application/x-web-app-manifest+json webapp;
    application/x-x509-ca-cert          crt der pem;
    application/x-xpinstall             xpi;
    application/xhtml+xml               xhtml;
    application/xml                     xml;
    application/xml-dtd                 dtd;
    application/zip                     zip;

    audio/midi                          kar mid midi;
    audio/mp4                           aac f4a f4b m4a;
    audio/mpeg                          mp3;
    audio/ogg                           oga ogg;
    audio/vnd.wave                      wav;
    audio/x-flac                        flac;
    audio/x-realaudio                   ra;

    image/bmp                           bmp;
    image/gif                           gif;
    image/jpeg                          jpe jpeg jpg;
    image/png                           png;
    image/svg+xml                       svg svgz;
    image/tiff                          tif tiff;
    image/webp                          webp;
    image/x-icon                        cur ico;

    text/cache-manifest                 appcache manifest;
    text/css                            css less;
    text/csv                            csv;
    text/html                           htm html shtml;
    text/mathml                         mml;
    text/plain                          txt;
    text/rtf                            rtf;
    text/vcard                          vcf;
    text/vtt                            vtt;
    text/x-component                    htc;
    text/x-markdown                     md;

    video/3gpp                          3gp 3gpp;
    video/avi                           avi;
    video/mp4                           f4p f4v m4v mp4;
    video/mpeg                          mpeg mpg;
    video/ogg                           ogv;
    video/quicktime                     mov;
    video/webm                          webm;
    video/x-flv                         flv;
    video/x-matroska                    mkv;
    video/x-ms-wmv                      wmv;
}

Ich habe bewusst alle Office-bezogenen Typen ausgelassen.

Alix Axel
quelle