nginx gzip 静态文件压缩

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值