nginx 代理缓存配置

网上有人做过测试:

一种情况是使用nginx的proxy_cache来做缓存,经测试,性能最佳;第二种是使用nginx来做动静分离,经测试,性能次于第一种,第三种是使用nginx的proxy_cache来做缓存,同时在nginx的前端使用keepalived来实现nginx的failover切换,即HA。

测试参考:http://quenlang.blog.51cto.com/4813803/1570671

现自己做一下代理缓存配置,做个记录,主要配置如下:

    #proxy_cache start
    proxy_connect_timeout 5;
    proxy_read_timeout 60;
    proxy_send_timeout 5;
    proxy_buffer_size 16k;
    proxy_buffers 4 64k;
    proxy_busy_buffers_size 128k;
    proxy_temp_file_write_size 128k;
    proxy_temp_path /tmp/temp_dir;
    #设置Web缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为300M。
    proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=300M;
    #proxy_cache end
    upstream backend {
        server 10.10.49.23:8080 max_fails=1 fail_timeout=10s;
    }

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
	#proxy_cache start
        add_header X-Cache $upstream_cache_status;
        #动静分类,如果有CDN,可以把静的proxy_pass指向CDN服务器
        location ~* "\.(jpg|jpeg|png|gif|html|css|js)$" {
                proxy_pass http://backend;
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_cache cache_one;
                proxy_cache_valid 200 302 1h;
                proxy_cache_valid 301 1d;
                proxy_cache_valid any 1d;
                expires 1d;
        }
        location ~* "\.(jsp|do)$" {
                proxy_pass http://backend;
        }
测试是否成功,可通过chrom访问:

nginx 代理缓存配置_第1张图片

有X-Cache:HIT

查看缓存目录会生成:

nginx 代理缓存配置_第2张图片

说明成功了。


接下来安装purge

下载:

wget  http://labs.frickle.com/files/ngx_cache_purge-2.0.tar.gz

tar zxvf ngx_cache_purge-2.0.tar.gz

先停nginx

重新编译:

./configure --add-module=/usr/local/src/ngx_cache_purge-2.0

make  && make install

发现有错,报ngx_cache_purge_module.c:275: error: comparison between pointer and integer之类的错,网上查了一下是nginx与purge不兼容问题

于是下载了ngx_cache_purge-2.3.tar.gz就没问题了。

可是不知道为什么清除缓存总报404,网上说的三个理由,主要是说location位置顺序不对,可调整后还是一样,现在还没有解决。



你可能感兴趣的:(nginx 代理缓存配置)