博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginx(tengine)第三方模块 :ngx_cache_purge
阅读量:5890 次
发布时间:2019-06-19

本文共 2274 字,大约阅读时间需要 7 分钟。

ngx_cache_purge模块,用于清除指定URL的缓存。

下载2011-05-03更新的最新版1.3

wget 
tar zxf ngx_cache_purge-1.3.tar.gz 

切换到nginx目录
cd nginx-1.0.0
./configure --user=www --group=www --add-module=../ngx_cache_purge-1.3 --prefix=/usr/local/webserver/nginx --with-http_stub_status_module
make;make install

安装完成!

安装完后在/usr/local/webserver/nginx下多了四个目录,分别是fastcgi_temp,proxy_temp,scgi_temp和uwsgi_temp。

proxy_temp这个目录用于存储临时文件,需要看下是否www有权限写入,如果不可

写,无法在这个目录生成文件的话,会导致反向代理失败。也可以在nginx的配置里

设置proxy_temp_path指定存储临时文件的目录。

nginx配置文件参考:

http {


    #proxy_temp_path   /www/proxy_temp;
    #设置Web缓存区名称为cache_one,内存缓存空间大小为100MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为10GB。
    proxy_cache_path  /www/proxy_cache  levels=1:2   keys_zone=cache_one:100m inactive=1d max_size=10g;
  

    server {


        listen       80;
        server_name  s.9enjoy.com;

            location / {

            proxy_cache cache_one;
            proxy_cache_valid  200 304 12h;
            proxy_cache_key $uri$is_args$args;
            proxy_set_header Host  $host;
            proxy_set_header X-Forwarded-For  $remote_addr;
            proxy_pass 
            expires      1d;
                }

            location ~ /purge(/.*) {

                allow              all;
                allow               127.0.0.1;
            #    deny               all;
                proxy_cache_purge cache_one $1$is_args$args;
            }
            access_log /www/logs/s.log access;
        }
    ......
}


这样访问s.9enjoy.com/images/logo.gif,反向代理就会去请求,保存在内存中,然后输出。
如果logo.gif这个文件发生了变化,则需要刷新缓存,访问s.9enjoy.com/purge/images/logo.gif,就会提示:Successful purge

Key : /images/logo.gif 
Path: /www/proxy_cache/39aaa70038997e0e5e77beaa4392848d
如果这个文件没有被缓存过,则提示:404 Not Found

-------------------------------------------------------------------------------------------------------------------------
如果是已经安装过nginx了,请一定注意,使用nginx -s reload重启是无效的!一定要-s stop之后再启动,这样才会使用新版本的nginx!

我今天就没注意这点,在这上面化了N个小时!

/usr/local/webserver/nginx/sbin/nginx -V       
nginx: nginx version: nginx/1.0.0
nginx: built by gcc 4.1.2 20080704 (Red Hat 4.1.2-46)
nginx: configure arguments: --user=www --group=www --add-module=../ngx_cache_purge-1.3 --prefix=/usr/local/webserver/nginx --with-http_stub_status_module

一直以为是装成功了,但反复测试均清除失败,很郁闷!明明开启了访问日志,日志也没记录任何信息!
晚上继续测试时,在nginx_error.log里看到有如下的错误提示:
2011/05/11 21:23:40 [emerg] 20976#0: unknown directive "proxy_cache_purge" in /usr/local/webserver/nginx/conf/nginx.conf:481
才确认这个模块跟本没装上,当然不能用了。后来在一个论坛看到一个人的回复说要restart,但reload是无效的。才想到前段搞nginx升级时就发现,如果不用make upgrade升级,重新编译升级的话,必须停掉,再启动才会使用新的版本!

 





      本文转自crazy_charles 51CTO博客,原文链接:http://blog.51cto.com/douya/1555472,如需转载请自行联系原作者

你可能感兴趣的文章
【ajax入门】使用Ajax异步实现用户名异步校检
查看>>
POJ 3009 Curling 2.0 DFS
查看>>
帧中继网络中配置OSPF
查看>>
配置mysql ssl连接
查看>>
memcache 搭建缓存服务器
查看>>
c# 之 timer 实战
查看>>
手机变砖了的进来,在linux(ubuntu)下使用fastboot修砖。
查看>>
Java多线程&集合类-详细版
查看>>
linux系统生产调优在线网络教室分享活动
查看>>
使用git推送代码到开源中国以及IDEA环境下使用git
查看>>
mysql 主从复制
查看>>
我的友情链接
查看>>
Linux awk命令详解2
查看>>
设计横幅广告Banner
查看>>
VS2008中控制台不能输入中文(对网上资源的整理)
查看>>
zabbix高可用搭建--数据库集群(2)
查看>>
红黑树的删除
查看>>
我的友情链接
查看>>
文件上传
查看>>
中项笔记(七)
查看>>