天天看點

nginx(tengine)第三方子產品 :ngx_cache_purge

ngx_cache_purge子產品,用于清除指定URL的緩存。

下載下傳2011-05-03更新的最新版1.3

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;

            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;

        }

    ......

}

如果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更新,重新編譯更新的話,必須停掉,再啟動才會使用新的版本!

<b> </b>

      本文轉自crazy_charles 51CTO部落格,原文連結:http://blog.51cto.com/douya/1555472,如需轉載請自行聯系原作者