nginx 代理缓存配置

来源:互联网 发布:淘宝联盟佣金查看插件 编辑:程序博客网 时间:2024/05/08 14:41

网上有人做过测试:

一种情况是使用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访问:


有X-Cache:HIT

查看缓存目录会生成:

说明成功了。


接下来安装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位置顺序不对,可调整后还是一样,现在还没有解决。



0 0