nginx 代理缓存配置
2015-08-25 15:22
393 查看
网上有人做过测试:
一种情况是使用nginx的proxy_cache来做缓存,经测试,性能最佳;第二种是使用nginx来做动静分离,经测试,性能次于第一种,第三种是使用nginx的proxy_cache来做缓存,同时在nginx的前端使用keepalived来实现nginx的failover切换,即HA。
测试参考:/article/4543237.html
现自己做一下代理缓存配置,做个记录,主要配置如下:
有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位置顺序不对,可调整后还是一样,现在还没有解决。
一种情况是使用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位置顺序不对,可调整后还是一样,现在还没有解决。
相关文章推荐
- 如何搭建 Nginx 网站服务器
- PHP和Nginx的通信方式
- LNMP环境搭建
- nginx缓存配置和ngx_cache_purge总结
- 如何使用 Datadog 监控 NGINX(第三篇)
- 如何使用 Datadog 监控 NGINX(第三篇)
- nginx配置ssl双向验证(后台登录限制)
- Nginx Location总结
- SEnginx
- Nginx块配置项
- Nginx日志文件切割
- Nginx配置文件nginx.conf中文详解
- Ubuntu14.04 64 安装nginx之 缺少 libpcre.so.1
- Nginx基础知识. Nginx模块开发
- Nginx 记录请求分发日志
- spark读取kafka nginx网站日志消息 并写入HDFS中
- LVS Nginx HAProxy 优缺点
- 初识nginx之准备工作
- Nginx基础篇之一—Nginx在Ubuntu的安装
- Nginx 错误502 upstream sent too big header while reading response header from upstream