Nginx缓存[proxy cache、memcache]
nginx自带缓存
nginx自己有单独的进程来对磁盘上的缓存文件进行扫描,在内存中建立缓存索引。并且有管理进程来对缓存进行过期判断,更新等操作
定义:只能在http段中使用
proxy_cache_path /dev/shm/nginx/cache levels=1:2 keys_zone=one:10m inactive=5m loader_sleep=1m max_size=200m;
/dev/shm #内存系统,这样缓存将更快。
level #一般最多三级,这里指定二级,第一级目录一个字符命名,第二级有两个字符命名。
keys_zone #存储在内存中的元数据的大小
max_size #存在shm的内容的大小,即缓存的数据的大小
inactive #如果缓存在指定时间内没有被访问,则强制更新
loader_time #每隔指定直接更新内存缓存的索引
使用:一般在前端使用。后端做一个upstream,这样就缓存效果更好
location / {
root html;
index index.html index.htm;
proxy_pass http://wxl;
proxy_cache one; #使用刚定义的key_zone
proxy_cache_valid 200 1m; #成功响应的缓存时间1分钟
}
缓存的内容大概是这个样子
# cat /dev/shm/nginx/cache/8/c5/8f800960e4ca2d295469ee9efa440c58
KEY: http://wxl/
HTTP/1.1 200 OK
Date: Sat, 16 Jan 2016 02:54:16 GMT
Server: Apache/2.2.15 (Red Hat)
Last-Modified: Sat, 16 Jan 2016 02:49:51 GMT
ETag: "68cc-14-5296a92e464c3"
Accept-Ranges: bytes
Content-Length: 20
Connection: close
Content-Type: text/html; charset=UTF-8
server3.example.com
基于memcache缓存
对于常用的数据,也可以缓存在memcache中。性能很好,对于一般的场景都是比较好的选择
安装memcachd服务: yum install memcached
后面我以Python连接操作memcache,所以顺便安装连接器:yum install python-memcached.noarch
server {
listen 80;
server_name www.wxl-dede.com;
location / {
root html;
set $memcached_key "$uri";
memcached_pass 127.0.0.1:11211;
memcached_connect_timeout 5s;
memcached_read_timeout 5s;
memcached_send_timeout 5s;
memcached_buffer_size 32k;
error_page 404 502 504 = @fallback;
}
location @fallback {
proxy_pass http://wxl;
}
}
一些指令的解释:
memcached_pass address[:port]/upstream; #连接memcache
memcached_connect_timeout time; #连接超时时间
memcached_read_timeout 5s; #nginx服务器向mc发出两次写请求之间的等待时间,如果在该段时间内没有进行数据传输,连接将关闭
memcached_read_timeout 5s; #两次读请求之间
memcached_buffer_size 32k; #nginx接收mc数据的缓冲区大小
这里使用一张图片做测试
>>> f = open("/root/p.jpg")
>>> f=f.read()
>>> mc.add('/pic',f)
访问:http://www.wxl-dede.com/pic
访问其他连接直接转到其他fallback
需要注意的是,nginx只是读数据,但是写数据是有后端的程序来完成。nginx有其他的模块来支持nginx在mc中操作数据,比如:memc_nginx和srcache_nginx的解决方案,这里先不讨论。
Nginx缓存[proxy cache、memcache]的更多相关文章
- nginx之proxy、cache、upstream模块学习
nginx之proxy反向代理模块: location ^~ /proxy_path/ { root "/www/html"; 这里没必要配置 index index.html; ...
- nginx proxy cache配置和清理
1.nginx需要编译Purge模块 2.nginx.conf 配置cache: proxy_cache_path /home/cache/xxx levels=1:2 keys_zone=cac ...
- nginx Proxy Cache 配置
总结一下 proxy cache 设置的常用指令及使用方法: proxy_cache proxy_cache zone | off 配置一块公用的内存区域的名称,该区域可以存放缓存的索引数据.注意:z ...
- Cache,MemCache,Application,Cookie等其它缓存汇总
为了提高网页运行速度我们用到了各种缓存技术,今天就来汇总下,相信聪明的你也一定会有所收获的o(^▽^)o 1.Cache(PS:看见一个博客介绍的不错,我就直接Copy了) Cache 即高速缓存.那 ...
- nginx缓存配置的操作记录梳理
web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存服务器直接输 ...
- Nginx实现负载均衡&Nginx缓存功能
一.Nginx是什么 Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambl ...
- Nginx缓存
一.基于proxy_cache的缓存 worker_processes ; events { worker_connections ; } http { include mime.types; def ...
- Nginx缓存服务
Nginx缓存服务 1.缓存常见类型 2.缓存配置语法 3.缓存配置实践 4.缓存清理实践 5.部分页面不缓存 6.缓存日志记录统计 通常情况下缓存是用来减少后端压力, 将压力尽可能的往前推, 减少后 ...
- debian下配置nginx缓存
root权限下 新建/usr/nginx/cache/webpages目录 在/etc/nginx/sites-available下找到自己所需配置的文件,打开文件后在开头加上proxy_cache_ ...
随机推荐
- python的对象的属性(即对象的成员)是动态的
1 python的对象的成员叫attribute 2 python的类的成员是可以动态创建的 因此,在用的时候也提供了三个内建的接口来对类的成员进行操作 2.1 getattr() 2.2 hasat ...
- Understanding When to use RabbitMQ or Apache Kafka Kafka RabbitMQ 性能对比
Understanding When to use RabbitMQ or Apache Kafka https://content.pivotal.io/rabbitmq/understanding ...
- Qt & opencv 学习(一)
Qt也没怎么系统学过,opencv也没系统学过.慢慢来,一步一步弄清楚吧. 天嵌科技有个文档,先去看这个文档,主要是开发环境的配置.文档名字就是QT应用程序开发手册-20150918.pdf.在QT里 ...
- SDUT OJ 图练习-BFS-从起点到目标点的最短步数 (vector二维数组模拟邻接表+bfs , *【模板】 )
图练习-BFS-从起点到目标点的最短步数 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 在古老的魔兽传说中,有两个军团,一个叫天 ...
- YTU 1068: 复制字符串
1068: 复制字符串 时间限制: 1 Sec 内存限制: 128 MB 提交: 602 解决: 382 题目描述 有一字符串,包含n个字符.写一函数,将此字符串中从第m个字符开始的全部字符复制成 ...
- 软件安全测试新武器 ——浅谈基于Dynamic Taint Propagation的测试技术
软件安全测试是保证软件能够安全使用的最主要的手段,如何进行高效的安全测试成为业界关注的话题.多年的安全测试经验告诉我们,做好软件安全测试的必要条件是:一是充分了解软件安全漏洞,二是拥有高效的软件安全测 ...
- poj 1094 Sorting It All Out 解题报告
题目链接:http://poj.org/problem?id=1094 题目意思:给出 n 个待排序的字母 和 m 种关系,问需要读到第 几 行可以确定这些字母的排列顺序或者有矛盾的地方,又或者虽然具 ...
- html5--6-11 CSS选择器7--伪类选择器
html5--6-11 CSS选择器7--伪类选择器 #E:target 选择当前活动的锚点元素. 学习要点 掌握常用的CSS选择器 了解不太常用的CSS选择器 什么是选择器 当我们定义一条样式时候, ...
- python中list用法及遍历删除元素
列表(list)是python的基本数据结构,list中每一个元素都分配一个位置索引,可以通过索引访问元素值,list不要求数据项有相同的数据类型. list初始化 list由一个方括号加内部由逗号分 ...
- Leetcode字符串专题
Leetcode38. Count and Say 分析:根据题意,数列的下一项就是统计上一项中每个数字出现的次数,理解清楚题意就很简单了 class Solution { public: strin ...