Gzip javascript and css with NGinx

June 29th, 2012

Warning: This post is 12 years old. Some of this information may be out of date.

Nginx by default will only compress text/html content types. Heres how to gzip javascript and css with NGinx:

In your nginx.conf file:

...
http {
    include       /etc/nginx/mime.types;

    access_log  /var/log/nginx/access.log;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;

    gzip  on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";
    gzip_types application/x-javascript text/css;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}
....

Or in your sites-enabled site file:

server {
    listen   127.0.0.1:81;
    server_name  localhost;

    gzip_types application/x-javascript text/css;

    access_log  /var/log/nginx/localhost.access.log;
    ....
}

Reload nginx and your css and javascript files should now be gzip compressed.

For more information on NGinx's gzip module, look at http://wiki.nginx.org/NginxHttpGzipModule.