轉(zhuǎn)自:
http://www.9enjoy.com/nginx-proxy_cache-purge/nginx默認安裝就會帶有反向代理的功能,但想要更好的使用,還得配備frickle.com的ngx_cache_purge模塊,用于清除指定URL的緩存。
引用
在功能上,Nginx已經(jīng)具備Squid所擁有的Web緩存加速功能、清除指定URL緩存的功能。而在性能上,Nginx對多核CPU的利用,勝過Squid不少。另外,在反向代理、負載均衡、健康檢查、后端服務器故障轉(zhuǎn)移、Rewrite重寫、易用性上,Nginx也比Squid強大得多。這使得一臺Nginx可以同時作為“負載均衡服務器”與“Web緩存服務器”來使用。--by 張宴
下載2011-05-03更新的最新版1.3
wget
http://labs.frickle.com/files/ngx_cache_purge-1.3.tar.gztar 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有權(quán)限寫入,如果不可寫,無法在這個目錄生成文件的話,會導致反向代理失敗。也可以在nginx的配置里設置proxy_temp_path指定存儲臨時文件的目錄。
nginx配置文件參考:
http {
#proxy_temp_path /www/proxy_temp;
#設置Web緩存區(qū)名稱為cache_one,內(nèi)存緩存空間大小為100MB,1天沒有被訪問的內(nèi)容自動清除,硬盤緩存空間大小為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
http://www.9enjoy.com; 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,反向代理就會去請求
http://www.9enjoy.com/images/logo.gif,保存在內(nèi)存中,然后輸出。
如果logo.gif這個文件發(fā)生了變化,則需要刷新緩存,訪問s.9enjoy.com/purge/images/logo.gif,就會提示:Successful purge
Key : /images/logo.gif
Path: /www/proxy_cache/39aaa70038997e0e5e77beaa4392848d
如果這個文件沒有被緩存過,則提示:404 Not Found