Nginx中gzip_static模块

在nginx中打开gzip压缩:

gzip  on;

gzip_min_length  1024;

gzip_buffers     4 8k;

gzip_types       text/plain application/x-javascript text/css text/html application/xml;

一般情况,需要设置一下gzip_min_length的值,建议设置成大于1k的字节数,小于1k可能会越压越大。 即: gzip_min_length 1024

gzip_types:匹配MIME类型进行压缩,(无论是否指定)"text/html"类型总是会被压缩的。

另外nginx还提供了一个static_gzip模块,若要使用它需要在编译的时候把static_gzip模块编译进去:

./configure --with-http_gzip_static_module

此模块的作用就是在接到请求后,会到url相同的路径的文件系统去找扩展名为“.gz”的文件

比如:http://www.iteye.com/stylesheets/homepage.css

nginx就会先查找 stylesheets/homepage.css.gz 这个文件,如果存在直接把它发送出去,如果不存在,再将stylesheets/homepage.css文件进行gzip压缩,再发送出去,这样可以避免重复的压缩无谓的消耗资源,

这个模块不受gzip_types限制,会对所有请求有效。

所以建议不要在全局上使用,因为一般来说大部分都是动态请求,是不会有.gz这个文件的,建议只在局部我们确认有.gz的目录中使用。

Nginx不会自动的将压缩结果写入文件系统,这点不同于lighttpd,所以如果想使用static_gzip模块,需要自己写脚本生成.gz文件。

而对于Rails3项目来说就很方便了,只需要针对assets目录启用gzip_static模块即可:

location ~ ^/(assets)/  {

root /path/to/public;

gzip_static on; # to serve pre-gzipped version

expires max;

add_header Cache-Control public;

}

时间: 2024-09-29 18:25:47

Nginx中gzip_static模块的相关文章

Nginx 中 HTTP模块初始化

概述 在前面的文章< Nginx 配置解析>简单讲解了通用模块的配置项解析,并且大概讲解了HTTP 模块的配置项解析过程,本文更具体的分析 HTTP 模块的初始化过程.HTTP 模块初始化过程主要有:上下文结构初始化.配置项解析.配置项合并.server 相关端口设置. HTTP 模块接口 ngx_http_module_t 结构体 在 Nginx 中,结构体 ngx_module_t 是 Nginx 模块最基本的接口.对于每一种不同类型的模块,都有一个具体的结构体来描述这一类模块的通用接口.

nginx中upstream模块的简单示例

本文所指的upstream是nginx的http模块中的内容对nginx来说,upstream可以在nginx上将后端服务器定义为服务器组,将不同后端不同的服务器划分为不同的组,再经过不同组内的调度算法实现负载均衡.和缓存设置类似,upstream需要先在http下定义,再被调用,方可正常使用.示例: http { -- upstream webserver { #定义名为webserver的组 server 192.168.1.111:80; server 192.168.1.222:80;

nginx中ngx_http_core_module模块

http核?心模块指令:套接字相关的配置3.1 server{ }设置虚拟服务器?的配置Syntax: server { ... }Default: —Context: httpserver {listen address[:PORT]|PORT;server_name SERVER_NAME;root /PATH/TO/DOCUMENT_ROOT;}3.2 server_name设置虚拟服务器?的名称Syntax: server_name name ...;Default: server_na

Nginx中ngx_http_proxy_module模块

该模块允许将请求传递给另?一台服务器?指令:1 ,proxy_pass设置代理理服务器?的协议和地址以及应映射位置的可选 URI .作为协议,可以指定“ http 或 https .可以将地址指定为域名或IP地址,以及可选端?口Syntax: proxy_pass URL;Default: —Context: location, if in location,limit_except如果 proxy_pass 后?面指定了了 uri ,则其会将 location 指定的 uri 给替换掉loca

Nginx中ngx_http_upstream_module模块

用于将多个服务器?定义成服务器?组,?而由 proxy_pass , fastcgi_pass 等指令进?行行引?用upstream backend {server backend1.example.comweight=5;server backend2.example.com:8080;server unix:/tmp/backend3;server backup1.example.com:8080backup;server backup2.example.com:8080backup;}se

nginx中ngx_http_access_module模块

实现基于IP的访问控制功能指令:4.1 allow允许访问指定的?网络或地址Syntax: allow address | CIDR | unix:| all;Default: —Context: http, server, location,limit_except4.2 deny拒绝访问指定的?网络或地址Syntax: deny address | CIDR | unix: |all;Default: —Context: http, server, location,limit_except

nginx中lua脚本输出

在nginx中嵌入lua模块,能够使得nginx服务端的开发大大地方便,尤其是在实现一些额外的统计等小功能的时候.在nginx模块中直接lua嵌入脚本文件,可以直接使用nginx中lua模块的一些函数直接返回数据.可以调用的函数如下:ngx.say(),ngx.print(),return ,ngx.exit()等等,下面介绍一下这些函数的区别: (1)ngx.say()函数是返回该函数的参数加换行的数据,例如ngx.say("hello"),则返回数据hello/r/n, (2)ng

nginx中SSI问题的研究

最近感觉挺爽的,这个项目团队没有一个专门做PHP的,我是第一个进来做PHP(当然还有前端)的,哈哈,我会设计修改出适合我们业务的PHP框架,哈哈,感觉会学到很多东西的样子,前几天在组内20几个前辈面前讲php框架,以及跟大牛们探讨适合我们的php框架,感觉表达能力太差了,知道的东西表达不清楚,还要我的导师去帮我表达,这里感谢下我的导师于洪磊(简称磊哥),磊哥简直就是我的偶像,我没见过那么有深度的程序员,技术牛B这是肯定的了,对技术外的了解超出了我的想象,磊哥看的书很多,涉猎很广泛,尤其在历史和文

nginx中使用perl模块

转载自:http://www.netingcn.com/nginx-perl.html 如果对于一个绝大部分内容是静态的网站,只有极少数的地方需要动态显示,碰巧你又了解一点perl知识,那么nginx + perl的结合就能很好解决问题.要想nginx支持perl脚本,在编译nginx时候需要如下参数: ./configure --with-http_perl_module 如果make时候出现如下类似错误: Can't locate ExtUtils/Embed.pm in @INC (@IN