nginx安装etag模块的方法

Etag: "5d8c72a5edda8d6a:3239″
客户端的查询更新格式是这样的:
If-None-Match: "5d8c72a5edda8d6a:3239″
如果ETag没改变,则返回状态304.
即:在客户端发出请求后,Http Reponse Header中包含 Etag: "5d8c72a5edda8d6a:3239″
标识,等于告诉Client端,你拿到的这个的资源有表示ID:5d8c72a5edda8d6a:3239.当下次需要发Request索要同一个URI的时候,浏览器同时发出一个If-None-Match报头( Http RequestHeader)此时包头中信息包含上次访问得到的Etag: "5d8c72a5edda8d6a:3239″标识.
If-None-Match: "5d8c72a5edda8d6a:3239"
,这样,Client端等于Cache了两份,服务器端就会比对2者的etag.如果If-None-Match为False,不返回200,返回304 (Not Modified) Response.
  系统:centos 5.x
  需要的软件:git nginx-static-etags模块包
1.安装git
如果你服务器上没有安装git,可以去参看这篇文章centos下两种方法安装git.

2.下载nginx-static-etags模块包
git clone git://github.com/mikewest/nginx-static-etags.git ./nginx-static-etags

3.编译安装

 代码如下 复制代码

cd /root/install/nginx-static-etags
echo ''>>ngx_http_static_etags_module.c 加一空行,否则编译会报错,这个是nginx-static-etags的bug
cd /root/install/nginx-1.2.x
./configure --user=www --group=www --add-module=../ngx_cache_purge-1.3 --add-module=../nginx-accesskey-2.0.3
--add-module=../memc-nginx-module --add-module=../srcache-nginx-module --add-module=../nginx-static-etags/ --prefix=/usr/share/nginx
--sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body
--http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi
--pid-path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx --with-http_secure_link_module
--with-http_random_index_module --with-http_ssl_module --with-http_realip_module --with-http_addition_module
--with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_gzip_static_module
--with-http_stub_status_module --with-http_perl_module --with-http_geoip_module --with-mail
--with-mail_ssl_module --with-google_perftools_module --with-ld-opt=-ltcmalloc_minimal

make
make install

4.配置nginx
vi /etc/nginx/nginx.conf
最好是添加到你虚拟主机的server配置里.

 代码如下 复制代码
location ~ .*/.(gif|jpg|jpeg|png|bmp|ico|rar|css|js|zip|xml|txt|flv|swf|mid|doc|cur|xls|pdf|txt|)$ {
  FileETag on;
  etag_format "%X%X"; www.111cn.net
  expires 30d;
}

重启nginx后,进行验证
curl --head http://blog.slogra.com/xx/swfobject.js

可以看到已经有etag的标识了. 原文来自:blog.slogra.com

 

时间: 2024-09-29 20:21:37

nginx安装etag模块的方法的相关文章

nginx安装第三方模块的方法_nginx

nginx文件非常小但是性能非常的高效,这方面完胜apache,nginx文件小的一个原因之一是nginx自带的功能相对较少,好在nginx允许第三方模块,第三方模块使得nginx越发的强大. 在安装模块方面,nginx显得没有apache安装模块方便,当然也没有php安装扩展方便.在原生的nginx,他不可以动态加载模块,所以当你安装第三方模块的时候需要覆盖nginx文件.接下来看看如何安装nginx第三模块吧. nginx第三方模块安装方法: 复制代码 代码如下: ./configure -

Nginx开启stub_status模块配置方法_nginx

Nginx中的stub_status模块主要用于查看Nginx的一些状态信息. 本模块默认是不会编译进Nginx的,如果你要使用该模块,则要在编译安装Nginx时指定: 复制代码 代码如下: ./configure –with-http_stub_status_module 一.查看已安装的 Nginx 是否包含 stub_status 模块 复制代码 代码如下: #/usr/local/nginx/sbin/nginx -V 如果包含 stub_status 模块,那么就可以进行下面的步骤了:

将 nginx 安装成 windows 的方法

服务器这几天不稳定,经常性的重启(硬件问题),而且是windows环境,在其上跑了nginx,每次重启后需要手动启动nginx方能是整个系统正常. 所以就查找了下一种方法,能否将nginx做成windows服务,重启后,自动重启了,于是就找到了本文的方法. 主要工具:https://github.com/kohsuke/winsw/  看了介绍,是使用 .net 2.0 封装了 WMI 的内容,进行服务注册等,只需要配置下 xml 即可.   所以,将自己配置好的文件发上来,有需要的自己取用.

linux下为nginx添加jvmroute模块的方法_nginx

复制代码 代码如下: cd /optwget http://nginx.org/download/nginx-1.2.8.tar.gztar zxvf /opt/nginx-1.2.8.tar.gzwget https://nginx-upstream-jvm-route.googlecode.com/files/nginx-upstream-jvm-route-0.1.tar.gztar zxvf /opt/nginx_upstream_jvm_routecd /opt/nginx-1.2.8

《精通Nginx》——第1章 安装Nginx及第三方模块1.1 使用包管理器安装Nginx

第1章 安装Nginx及第三方模块 Nginx最初的设计是成为一个Http服务器,一个能够解决C10K问题的Http服务器.关于C10K这个问题,Daniel Kegel设计一个同时连接处理10000连接的web服务器.为了实现这个目标,Nginx通过基于事件的处理机制并且操作系统也要使用相应的事件机制,便可以解决C10K问题. 在我们开始探索如何配置Nginx之前,首先我们要安装它,这一章将详细讲述如何安装Nginx,以及如何获取正确的模块并且安装和配置它们.Nginx是模块化设计的,并且有非

nginx上传模块nginx_upload_module安装与使用教程

一.nginx_upload_module使用背景 利用nginx上传模块Nginx_upload_module可更有效实现大文件断点续传,还可安装nginx-upload-progress-module扩展显示文件上传进度. 二.nginx_upload_module工作原理 Nginx_upload_module通过nginx服务来接受用户上传的文件,自动解析请求体中存储的所有文件上传到upload_store指定的目录下.这些文件信息从原始请求体中分离并根据nginx.conf中的配置重新

使用Lua编写Nginx服务器的认证模块的方法

  这篇文章主要介绍了使用Lua编写Nginx服务器的认证模块的方法,即诸如当今流行的社交应用接入等功能,需要的朋友可以参考下 过去两天里,我解决了一个非常有趣的问题.我用一个nginx服务器作为代理,需要能够向其中添加一个认证层,使其能够使用外部的认证源(比如某个web应用)来进行验证,如果用户在外部认证源有账号,就可以在代理里认证通过. 需求一览 我考虑了几种解决方案,罗列如下: 用一个简单的Python/Flask模块来做代理和验证. 一个使用subrequests做验证的nginx模块(

原已经安装好的nginx,现在需要添加一个未被编译安装的模块--echo-nginx-module-0.56

为了测试一个NGINX变量,将NGINX加了一个编译模板echo-nginx-module-0.56. 参照如下文件 1,先看以前NGINX有哪些东东. sbin/nginx -V nginx version: nginx/1.6.0 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) TLS SNI support enabled configure arguments: --prefix=/XXXX/lnmp/nginx --user=n

《精通Nginx》——1.5 查找并安装第三方模块

1.5 查找并安装第三方模块 由于有多个开源项目,所以在Nginx周围就会有一个活跃的开发社区.由于Nginx的模块化特性,这个社区能够开发和发布模块,从而为Nginx提供额外的功能.它们涵盖了广泛的应用,所以着手开发自己的模块之前应该看看有什么可用模块. 安装第三方模块的过程相当简单,步骤如下. 1.定位你想要使用的模块(在 https://github.com 或者是 http://wiki.nginx.org/3rdPartyModules 查找). 2.下载该模块. 3.解压缩源代码安装