NGINX proxy 模块如何如何缓存动态页面内容?如何让缓存过期?

foxidea 发布于 2012/12/18 14:03
阅读 3K+
收藏 0
#gzip  on;
    proxy_cache_path /www/ levels=1:2 keys_zone=Z:10m inactive=1m max_size=30g;
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /www/;
	    #expires max;

            #proxy_store on;
            #proxy_store_access user:rw group:rw all:rw;
            #proxy_temp_path /www/;
	    proxy_cache Z;
	    proxy_cache_valid 200 1m;
            #expires max;
            include proxy.conf;
	
            if ( !-e $request_filename) {
            proxy_pass  http://192.168.1.199:45815;
            }
        }

        location /ajax/ {

            include proxy.conf;
            if ( !-e $request_filename) {
            proxy_pass  http://192.168.1.199:45815;
            }
        }

上面的配置我理解的是,除了 /ajax/ 目录下的内容直接从源服务器获取之外,其他目录下的内容都进行缓存缓存到 Z这个 keys_zone 中,keys_zone 在内存中设置了10mb 的存储空间,一分钟内没有访问的内容自动清除,缓存在硬盘上的存储空间为 30GB,

proxy_cache_valid 200 1m;
这一行我的理解是 把http状态为200 的页面 缓存到本地,1分钟之后失效

我写了一个动态页面 在根目录下:

http://192.168.1.199:45815/t.aspx

t.aspx 输出当前的时间 完整格式如:2012-12-18 14:00

<%=DateTime.Now.ToString()%>

但是,我访问 nginx http://localhost/t.aspx 动态页面每刷新一次 它就从源服务器请求一次,结果始终是实时的

我想让nginx 缓存 t.aspx 这个页面


该怎么做?我的配置有问题???

我在源服务器根目录下放了 http://192.168.1.199:45815/default.html

并不停的手工更改 这个html 文件,

然后访问 nginx  http://localhost/default.html  发现  这个页面是可以被缓存的,不晓得是什么原因??


加载中
0
l
lmdkfs

可以尝试下proxy_ignore_headers cache-control;

http://www.zrqblog.org/?p=646

返回顶部
顶部