您的位置:首页 > 运维架构 > Nginx

nginx 代理缓存配置

2015-08-25 15:22 393 查看
网上有人做过测试:

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

测试参考:/article/4543237.html

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

#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位置顺序不对,可调整后还是一样,现在还没有解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: