ngnix mysql 缓存清除_利用Proxy Cache使Nginx对静态资源进行缓存
前言 Nginx是高性能的HTTP服务器,通过Proxy Cache可以使其对静态资源进行缓存。其原理就是把静态资源按照一定的规则存在本地硬盘,并且会在内存中缓存常用的资源,从而加快静态资源的响应。 配置Proxy Cache 以下为nginx配置片段: proxy_temp_path /usr/lo
前言
Nginx是高性能的HTTP服务器,通过Proxy Cache可以使其对静态资源进行缓存。其原理就是把静态资源按照一定的规则存在本地硬盘,并且会在内存中缓存常用的资源,从而加快静态资源的响应。
配置Proxy Cache
以下为nginx配置片段:
proxy_temp_path /usr/local/nginx/proxy_temp_dir 1 2;
#keys_zone=cache1:100m 表示这个zone名称为cache1,分配的内存大小为100MB
#/usr/local/nginx/proxy_cache_dir/cache1 表示cache1这个zone的文件要存放的目录
#levels=1:2 表示缓存目录的第一级目录是1个字符,第二级目录是2个字符,即/usr/local/nginx/proxy_cache_dir/cache1/a/1b这种形式
#inactive=1d 表示这个zone中的缓存文件如果在1天内都没有被访问,那么文件会被cache manager进程删除掉
#max_size=10g 表示这个zone的硬盘容量为10GB
proxy_cache_path /usr/local/nginx/proxy_cache_dir/cache1 levels=1:2 keys_zone=cache1:100m inactive=1d max_size=10g;
server {
listen 80;
server_name *.example.com;
#在日志格式中加入$upstream_cache_status
log_format format1 '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" $upstream_cache_status';
access_log log/access.log fomat1;
#$upstream_cache_status表示资源缓存的状态,有HIT MISS EXPIRED三种状态
add_header X-Cache $upstream_cache_status;
location ~ .(jpg|png|gif|css|js)$ {
proxy_pass http://127.0.0.1:81;
#设置资源缓存的zone
proxy_cache cache1;
#设置缓存的key
proxy_cache_key $host$uri$is_args$args;
#设置状态码为200和304的响应可以进行缓存,并且缓存时间为10分钟
proxy_cache_valid 200 304 10m;
expires 30d;
}
}
安装Purge模块
Purge模块被用来清除缓存
$ wget http://labs.frickle.com/files/ngx_cache_purge-1.2.tar.gz
$ tar -zxvf ngx_cache_purge-1.2.tar.gz
查看编译参数
$ /usr/local/nginx/sbin/nginx -V
在原有的编译参数后面加上--add-module=/usr/local/ngx_cache_purge-1.2
$ ./configure --user=www --group=www --prefix=/usr/local/nginx \
--with-http_stub_status_module --with-http_ssl_module \
--with-http_realip_module --add-module=/usr/local/ngx_cache_purge-1.2
$ make && make install
退出nginx,并重新启动
$ /usr/local/nginx/sbin/nginx -s quit
$ /usr/local/nginx/sbin/nginx
配置Purge
以下是nginx中的Purge配置片段
location ~ /purge(/.*) {
#允许的IP
allow 127.0.0.1;
deny all;
proxy_cache_purge cache1 $host$1$is_args$args;
}
清除缓存
使用方式:
$ wget http://example.com/purge/uri
其中uri为静态资源的URI,如果缓存的资源的URL为
http://example.com/js/jquery.js,那么访问
http://example.com/purge/js/jquery.js则会清除缓存。
命中率
保存如下代码为hit_rate.sh:
#!/bin/bash
# author: Jeremy Wei # proxy_cache hit rate
if [ $1x != x ] then
if [ -e $1 ] then
HIT=`cat $1 | grep HIT | wc -l`
ALL=`cat $1 | wc -l`
Hit_rate=`echo "scale=2;($HIT/$ALL)*100" | bc`
echo "Hit rate=$Hit_rate%"
else
echo "$1 not exsist!"
fi
else
echo "usage: ./hit_rate.sh file_path"
fi
使用方式
$ ./hit_rate.sh /usr/local/nginx/log/access.log
参考:
http://wiki.nginx.org/HttpProxyModule
ngnix mysql 缓存清除_利用Proxy Cache使Nginx对静态资源进行缓存相关推荐
- 成功解决 Nginx更新静态资源无效 ,Nginx静态资源更新不及时,Nginx清除缓存
文章目录 问题描述 问题解决 问题复现 正常情况 问题描述 使用 nginx做动静分离,在将服务器中的静态资源修改后,访问页面,发现页面没有及时更新. 问题解决 我这里是清除了浏览器缓存. 有关ngi ...
- webpack打包缓存_【第835期】Webpack 的静态资源持久缓存
原标题:[第835期]Webpack 的静态资源持久缓存 前言 你现在还在休假吗?早读课节前以web pack漫谈结尾,今年就以web pack开始吧.今日早读文章由众成翻译@yanni4night带 ...
- 【Egg】静态资源及缓存设置
egg 静态资源及缓存设置 egg 默认自动继承静态资源配置,在public文件夹 通过 egg-static链接: https://github.com/eggjs/egg-static模块实现. ...
- nginx配置静态资源,重新发布后,浏览器缓存导致异常原因和解决
原因: nginx作为静态资源服务器,重新构建后发生浏览器页面直接取缓存中的js等文件名,但是由于服务器中文件已经被替换导致出现异常. 浏览器在下次请求这个资源的时候不会将请求发向后端,而是直接从缓存 ...
- nginx 发布前端资源的缓存方案
nginx 发布前端资源的缓存方案 前言 对于前端开发者来说,最头疼的事情莫过于.当你兴冲冲的给项目打包以后,上传到 nginx 等静态资源服务器发布以后,自己本地验证没问题,以为万事大吉,结果测试人 ...
- nginx搭建静态文件服务器,利用nginx搭建静态资源服务器的方法步骤
以windows为例,linux其实一样: 搭建静态资源服务器 我电脑上的work文件夹下面有很多图片,我想通过nginx搭建静态资源服务器,通过在地址栏输入ip+port的方式完成目录的映射 找到n ...
- nginx 配置静态资源缓存。解决web静态资源访问过慢
Nginx文件结构 1.全局块:配置影响nginx全局的指令.一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等. ...
- Nginx的静态资源缓存以及压缩
Nginx是一款轻量级的网页服务器.反向代理器以及电子邮件代理服务器.Nginx采用的是异步非阻塞的通信机制(epoll模型),支持更大的并发连接.所谓的epoll模型:当事件没有准备好时,就放入ep ...
- nginx 配置静态文件目录_nginx缓存静态资源,只需几个配置提升10倍页面加载速度...
nginx缓存静态资源,只需几个配置提升10倍页面加载速度 首先我们看图说话 这是在没有缓存的情况下,这个页面发送了很多静态资源的请求: 可以看到,静态资源占用了整个页面加载用时的90%以上,而且这个 ...
最新文章
- C#转换人民币大写金额
- 进阶学习(3.1) Simple Factory Pattern 简单工厂模式
- duilib控件的一些属性
- supesite 相关 修改
- 不得不服!腾讯优图联合腾讯会议正式上线神奇的眼神接触功能
- 自动生成mybatis代码
- abaqus6.14安装教程 如何设置中文
- python 根据身份证号计算年龄和性别_根据身份证自动计算出生日期、年龄、性别的例子...
- 朱晔的互联网架构实践心得S2E1:业务代码究竟难不难写?
- 交通肇事逃逸会受到什么处罚
- jquery插件--浮动广告
- 我们写的代码是如何一步步变成可执行程序(.EXE)的?
- 苹果iPhone14频繁自动重启是什么原因?如何修复这个问题?
- 低照度图像 颜色恢复 matlab,低照度图像修复方法总结
- 系统集成项目管理工程师英语词汇
- 100多个常用的Python函数!(部分函数含代码解读)
- 用AW国际版激活国行moto二代
- 【品牌专场】跨越 X 突破,音视频聚力新机遇
- 小程序的老祖宗PWA为什么没有火起来?
- 极客学院mysql教程_干货分享 速成必备视频 六天带你玩转MySQL视频教程 数据库......