• nginx gzip 静态文件压缩


    http://www.lockice.com/blog/2010/03/nginx-gzip-static-commpress.html

    nginx gzip 静态文件压缩

    nginx gzip 静态文件压缩能很大程度上提高网站的访问速度,但是文件的压缩会占用很大的内存,如果将网站的静态的文件提前用gzip压缩后再配置nginx的rewrite规则来转向到压缩后的文件将会对网站的性能有很大的提高。

    思路,把静态文件用gzip压缩后放在网站的目录下,然后用rewrite把请求转发到压缩后的文件,并增加add_header Content-Encoding gzip;这都很容易理解,但是Content-Type的设置就不是那么好搞的了。common.js压缩后是common.js.gz,转发到.gz文件就好了。

    第一次接触nginx对它的配置不是很熟悉,最初在location段增加add_header Content-Type原本认为可以了,但是查看页面传输信息里会有两个Content-Type,一个为新增加的那个,一个为http段的default_type。

    nginx返回两个Content-Type于是我把add_header Content-Type 去掉,在mime.types中增加一个mime类型,增加一个jsgz mime类型并把压缩后的文件更名为common.js.jsgz。转发到.jsgz文件就好了。这样设置可以了但是我总感觉不爽,多增加了几个mime类型。

    最终解决方法在location段增加default_type设置,配置如下:

    location ~ .*\.(js)?$

    {

    expires 30d;

    default_type application/x-javascript;

    if ($http_accept_encoding ~ “gzip”){

    set $rule_0 1$rule_0;

    }

    if (-f $request_filename.gz){

    set $rule_0 2$rule_0;

    }

    if ($rule_0 = “21″) {

    add_header Vary Accept-Encoding;

    add_header Content-Encoding gzip;

    gzip off;

    rewrite (.*) $1.gz break;

    }

    }

    标签: nginx

  • 相关阅读:
    [hdu2196]Computer树的直径
    [poj2342]Anniversary party树形dp入门
    链式前向星模板
    LintCode-50.数组剔除元素后的乘积
    Markdown的基本语法
    LintCode-8.旋转字符串
    LintCode-1.A + B 问题
    LintCode-61.搜索区间
    LintCode-88.最近公共祖先
    LintCode-54.转换字符串到整数
  • 原文地址:https://www.cnblogs.com/lexus/p/1818809.html
Copyright © 2020-2023  润新知