为nginx增加etag模块,感兴趣的朋友可以参考下。
系统环境:
centos5.6_x64
Nginx 1.0.0
官网地址:
nginx: http://nginx.org/
Etag源地址:https://github.com/mikewest/nginx-static-etags
Etag下载地址:https://nodeload.github.com/mikewest/nginx-static-etags/tarball/master
安装步骤:
1.下载Etag
文件名 mikewest-nginx-static-etags-25bfaf9.tar.gz 路径/root/soft/mikewest-nginx-static-etags-25bfaf9.tar.gz
2.重新编译nginx,添加Etag模块
a)、nginx -V
//获取nginx的编译参数 --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
b)、
复制代码 代码如下:
cd /root/soft
tar zxvf mikewest-nginx-static-etags-25bfaf9.tar.gz
echo '' >> /root/soft/ mikewest-nginx-static-etags-25bfaf9/ngx_http_static_etags_module.c //bug 增添一空行,否则编译不过
cd /root/soft/nginx1.0.0
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=/root/soft/mikewest-nginx-static-etags-25bfaf9 //注意后面添加的路径要对
make //这里确记不要make install,否则有可能把当前的配置文件覆盖,影响当前业务。
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak //备份个比较安全,出错马上还原回去
cp objs/nginx /usr/local/nginx/sbin/nginx.tmp //替换成新的nginx
rm -rf /usr/local/nginx/sbin/nginx && mv /usr/local/nginx/sbin/nginx.tmp /usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -t
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid` //让nginx把nginx.pid改成nginx.pid.oldbin 并启动新的nginx
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin` //习惯使用nginx -s reload来重启,发现不能生效,以为我配置错了花一个早上时间找问题。
c)、修改nginx.
复制代码 代码如下:
conflocation ~ .*/.(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";
expires 30d;
}
启动nginx
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
然后用curl测试看看
curl --head http://www.***.com/css/style.css
原文作者:李坤山
博客链接:http://blog.163.com/a12333a_li/